如何从选项卡控件开始新的 activity?
How to start new activity from tab control?
我有主页 activity,它有选项卡控件,在第一个选项卡上显示主要 activity。在主选项卡上,我有将重定向到另一个 activity 的按钮。
并且无法重定向到另一个 activity.
public class Main1 extends Fragment
{
ImageView saving, loan;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
saving = (ImageView) container.findViewById(R.id.imgSavingCollection);
loan = (ImageView) container.findViewById(R.id.imgLoanCollection);
saving.setOnClickListener((View.OnClickListener) container);
loan.setOnClickListener((View.OnClickListener) container);
View v = inflater.inflate(R.layout.activity_main1, container, false);
return v;
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.imgSavingCollection:
Intent savingactivity = new Intent(v.getContext(), SavingCollection.class);
startActivity(savingactivity);
break;
}
}
}
使用这个
Intent savingactivity = new Intent(getActivity(), SavingCollection.class);
startActivity(savingactivity);
将v.getContext()
替换为getActivity()
。
并定义布局线的上侧
View v = inflater.inflate(R.layout.activity_main1, container, false);
完整代码:
View v = inflater.inflate(R.layout.activity_main1, container, false);
saving = (ImageView) container.findViewById(R.id.imgSavingCollection);
loan = (ImageView) container.findViewById(R.id.imgLoanCollection);
saving.setOnClickListener((View.OnClickListener) container);
loan.setOnClickListener((View.OnClickListener) container);
return v;
问题可能出在 v.getContext() 上,所以在声明意图时将其替换为 getActivity() 即可。
您的 onCreateView 有问题,请将以下代码替换为您的 onCreateView
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.activity_main1, container, false);
saving = (ImageView) v.findViewById(R.id.imgSavingCollection);
loan = (ImageView) v.findViewById(R.id.imgLoanCollection);
saving.setOnClickListener((View.OnClickListener) container);
loan.setOnClickListener((View.OnClickListener) container);
return v;
}
尝试像这样更改您的代码,
public class Main1 extends Fragment
{
ImageView saving, loan;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_main1, container, false);
saving = (ImageView) rootView.findViewById(R.id.imgSavingCollection);
loan = (ImageView) rootView.findViewById(R.id.imgLoanCollection);
saving.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent savingactivity = new Intent(getActivity(), SavingCollection.class);
startActivity(savingactivity);
}
});
return rootView;
}
}
还要检查你的manifest.xml
<activity android:name=".SavingCollection"/>
这可能对你有帮助
而不是
Intent savingactivity = new Intent(v.getContext(), SavingCollection.class);
startActivity(savingactivity);
添加这个
Intent savingactivity = new Intent(getActivity(), SavingCollection.class);
startActivity(savingactivity );
我有主页 activity,它有选项卡控件,在第一个选项卡上显示主要 activity。在主选项卡上,我有将重定向到另一个 activity 的按钮。 并且无法重定向到另一个 activity.
public class Main1 extends Fragment
{
ImageView saving, loan;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
saving = (ImageView) container.findViewById(R.id.imgSavingCollection);
loan = (ImageView) container.findViewById(R.id.imgLoanCollection);
saving.setOnClickListener((View.OnClickListener) container);
loan.setOnClickListener((View.OnClickListener) container);
View v = inflater.inflate(R.layout.activity_main1, container, false);
return v;
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.imgSavingCollection:
Intent savingactivity = new Intent(v.getContext(), SavingCollection.class);
startActivity(savingactivity);
break;
}
}
}
使用这个
Intent savingactivity = new Intent(getActivity(), SavingCollection.class);
startActivity(savingactivity);
将v.getContext()
替换为getActivity()
。
并定义布局线的上侧
View v = inflater.inflate(R.layout.activity_main1, container, false);
完整代码:
View v = inflater.inflate(R.layout.activity_main1, container, false);
saving = (ImageView) container.findViewById(R.id.imgSavingCollection);
loan = (ImageView) container.findViewById(R.id.imgLoanCollection);
saving.setOnClickListener((View.OnClickListener) container);
loan.setOnClickListener((View.OnClickListener) container);
return v;
问题可能出在 v.getContext() 上,所以在声明意图时将其替换为 getActivity() 即可。
您的 onCreateView 有问题,请将以下代码替换为您的 onCreateView
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.activity_main1, container, false);
saving = (ImageView) v.findViewById(R.id.imgSavingCollection);
loan = (ImageView) v.findViewById(R.id.imgLoanCollection);
saving.setOnClickListener((View.OnClickListener) container);
loan.setOnClickListener((View.OnClickListener) container);
return v;
}
尝试像这样更改您的代码,
public class Main1 extends Fragment
{
ImageView saving, loan;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_main1, container, false);
saving = (ImageView) rootView.findViewById(R.id.imgSavingCollection);
loan = (ImageView) rootView.findViewById(R.id.imgLoanCollection);
saving.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent savingactivity = new Intent(getActivity(), SavingCollection.class);
startActivity(savingactivity);
}
});
return rootView;
}
}
还要检查你的manifest.xml
<activity android:name=".SavingCollection"/>
这可能对你有帮助
而不是
Intent savingactivity = new Intent(v.getContext(), SavingCollection.class);
startActivity(savingactivity);
添加这个
Intent savingactivity = new Intent(getActivity(), SavingCollection.class);
startActivity(savingactivity );