Android 从onclicklistener启动意图
我正在尝试从自定义onclick侦听器启动一个新活动。但它无法从onclick侦听器访问MainActivity实例。此外,它显示了错误的构造函数的意图。这是我的密码:Android 从onclicklistener启动意图,android,android-intent,onclicklistener,Android,Android Intent,Onclicklistener,我正在尝试从自定义onclick侦听器启动一个新活动。但它无法从onclick侦听器访问MainActivity实例。此外,它显示了错误的构造函数的意图。这是我的密码: public class ChartClickListener implements OnClickListener { private String ChartLink; public ChartClickListener(String chartLink){ this.ChartLink=ch
public class ChartClickListener implements OnClickListener {
private String ChartLink;
public ChartClickListener(String chartLink){
this.ChartLink=chartLink;
}
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
Intent intent=new Intent(MainActivity.this,ChartImageActivity.class);
intent.putExtra("chartLink", ChartLink);
startActivity(intent);
}
}
提前谢谢你的帮助 将代码修改为:
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
Intent intent=new Intent(view.getContext(),ChartImageActivity.class);
intent.putExtra("chartLink", ChartLink);
startActivity(intent);
}
像这样试试
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
Intent intent=new Intent(view.getContext(),ChartImageActivity.class);
intent.putExtra("chartLink", ChartLink);
view.getContext().startActivity(intent);//Changed Here
}
希望它能起作用将
MainActivity.替换为view.getContext()
,这将起作用。将活动上下文传递给自定义onclick侦听器,并使用该上下文启动Tactivity
public class ChartClickListener implements OnClickListener {
private String ChartLink;
Context c;
public ChartClickListener(String chartLink,Context context){
this.ChartLink=chartLink;
this.c=context;
}
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
Intent intent=new Intent(c,ChartImageActivity.class);
intent.putExtra("chartLink", ChartLink);
c.startActivity(intent);
}
}
将setOnClickListener设置为
ChartClickListener chartclicklistener=new ChartClickListener("chartLink",MainActivity.this);
b.setOnClickListener(chartclicklistener);
我尝试了这个方法,效果很好,我想干杯,然后转到一个新的活动
public class NumbersClickListener implements View.OnClickListener {
@Override
public void onClick(View view){
Toast.makeText(view.getContext(),"Open the list of Numbers",Toast.LENGTH_SHORT).show();
switch (view.getId()){
case R.id.numbers:
Intent i = new Intent(view.getContext(), NumberActivity.class);
view.getContext().startActivity(i);
break;
case R.id.family:
Intent i2 = new Intent(view.getContext(),FamilyActivity.class);
view.getContext().startActivity(i2);
break;
case R.id.colors:
Intent i3 = new Intent(view.getContext(),ColorsActivity.class);
view.getContext().startActivity(i3);
break;
case R.id.phrases:
Intent i4 = new Intent(view.getContext(),PhrasesActivity.class);
view.getContext().startActivity(i4);
break;
}
}
}intent构造函数的第一个参数是一个上下文对象将上下文传递给构造函数,并使用它来启动TactivityPost日志猫信息这不起作用,因为MainActivity。这不在onclick listener类的范围内谢谢!这对我有效,而不是被标记为正确的答案。