2

我有一个自定义 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) }

有人可以帮忙吗?

感谢您宝贵的时间和帮助。

4

4 回答 4

2

请接受我的道歉,我发现了问题(非常大的错误,对此感到抱歉),AndroidManifest.xml 中未指定 Activity2

于 2011-10-26T19:16:35.963 回答
1

试试这个cont.startActivity(intent);

于 2011-10-26T11:20:18.687 回答
1

那是因为您的getContext()方法返回的是 RadioButton 的上下文,而不是活动的上下文(来自单选按钮的构造函数)。尝试cont.startActivity(..

此外,在为 RadioButton 使用构造函数时,请尝试传递活动本身的实例(在活动内部,使用this而不是getApplicationContext())。

于 2011-10-26T12:00:01.017 回答
0

试试下面的代码

Intent intent = new Intent(custom_radiobutton.this ImageActivity.class); 
               // next line do nothing..
           getContext().startActivity(intent); 
于 2011-10-26T12:43:16.630 回答