我有一个自定义的RadioButton类,我将它放在Activity1上。我正在使用它的事件“onClick”来打开另一个Activity2。以下是代码:
public class custom_radiobutton extends RadioButton{
Paint myPaint = new Paint();
private Context cont;
public custom_radiobutton(Context context) {
super(context);
cont = context;
}
public custom_radiobutton(Context context, AttributeSet attrbs) {
super(context, attrbs);
cont = context;
}
@Override
protected void onDraw (Canvas canvas) {
super.onDraw(canvas);
String myText = (String) getText();
canvas.drawText(myText, 10, 10, myPaint);
this.setOnClickListener(radio_listener);
}
OnClickListener radio_listener = new OnClickListener() {
public void onClick(View v)
{
try
{
Intent intent = new Intent("com.moftak.db.ImageActivity");
// next line do nothing..
getContext().startActivity(intent);
// next line also not works
//cont.startActivity(intent);
}
catch(Exception ex)
{
Log.d("Image", "Error: "+ex.toString());
}
}
};
}
修改 问题是“getContext()。startActivity(intent);”这一行正在抛出错误:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.moftak.db.ImageActivity (has extras) }
有人可以帮忙吗?
感谢您宝贵的时间和救命。
答案 0 :(得分:2)
请接受我的道歉,我发现了问题(非常大的错误,对不起),未在AndroidManifest.xml中指定Activity2
答案 1 :(得分:1)
尝试使用此cont.startActivity(intent);
答案 2 :(得分:1)
那是因为你的getContext()
方法正在返回你的RadioButton的Context,而不是你的活动的上下文(来自radiobutton的构造函数)。试试cont.startActivity(..
另外,在使用RadioButton的构造函数时,请尝试传递活动本身的实例(在活动内部,使用this
而不是getApplicationContext()
)。
答案 3 :(得分:0)
尝试以下代码
Intent intent = new Intent(custom_radiobutton.this ImageActivity.class);
// next line do nothing..
getContext().startActivity(intent);