[英]Starting intent from onclicklistener
I am trying to start a new activity from a custom onclick listener. 我正在尝试从自定义onclick侦听器启动一个新活动。 But its unable to access MainActivity instance from onclick listener.
但是它无法从onclick监听器访问MainActivity实例。 Also, its showing wrong constructor for intent.
此外,它显示错误的意图构造函数。 Here is my code:
这是我的代码:
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);
}
}
Thanks for the help in advance. 我在这里先向您的帮助表示感谢。
Modify your code as: 将您的代码修改为:
@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);
}
try like this 试试这样
@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
}
Hope It will work 希望它会奏效
pass activity context to custom onclick listener and use that context to startactivity 将活动上下文传递给自定义onclick侦听器,并使用该上下文启动活动
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);
}
}
set setOnClickListener as 将setOnClickListener设置为
ChartClickListener chartclicklistener=new ChartClickListener("chartLink",MainActivity.this);
b.setOnClickListener(chartclicklistener);
用view.getContext()
替换MainActivity.this
,它将起作用。
I try this and it work, i want to show a Toast, and then transfer to a new Activity. 我尝试这个它工作,我想显示一个Toast,然后转移到一个新的活动。
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;
}
}
} }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.