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

申し訳ありませんが、問題が見つかりました(非常に大きな間違い、申し訳ありません)、Activity2がAndroidManifest.xmlで指定されていませんでした

于 2011-10-26T19:16:35.963 に答える
1

これは、getContext()メソッドが (ラジオボタンのコンストラクターからの) アクティビティのコンテキストではなく、RadioButton のコンテキストを返しているためです。試すcont.startActivity(..

また、RadioButton のコンストラクターを使用する場合は、アクティビティ自体のインスタンスを渡してみてください (アクティビティ内では、this代わりに使用しますgetApplicationContext())。

于 2011-10-26T12:00:01.017 に答える
1

これで試してくださいcont.startActivity(intent);

于 2011-10-26T11:20:18.687 に答える
0

以下のコードを試してください

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