2011-10-26 7 views
2

私はカスタムRadioButtonクラスを持っていますが、これをActivity1に配置しました。私はそのイベント "onClick"を使って別のアクティビティ2を開きます。startActivityはカスタムコントロール(RadioButton)内で動作しません

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.moftak.db.ImageActivity (has extras) } 

誰かが助けることができ、:;:

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()); 
      } 
     } 
    }; 
} 

EDIT:エラーの下に投げている 問題はライン "のgetContext()startActivity(意図が)" ということで、以下のコードがありますお願いします?

貴重な時間をありがとう&助けてください。

+0

に指定されていなかったましたそれは何かエラーや何を与えていますか? –

+0

Logcatでそのデバッグ行を調べるかcatch(Exception ex) – Blundell

+0

@Adil Soomro 私は質問を更新しました。 –

答えて

2

の下に試してみてください、私は問題(そのために残念非常に大きな間違い、)、がActivity2はAndroidManifest.xmlを

1

は、あなたのgetContext()方法は、あなたのRadioButtonのコンテキストではなく、(ラジオボタンのコンストラクタから)あなたの活動のコンテキストを返しているためです。このcont.startActivity(intent);

+0

ご返信ありがとうございます。私はそれを試みましたが、同じ結果ではなく、動作します。 –

+0

多分あなたの意図は、これを試してみてください:Intent intent = new Intent(YourActualClass.this、ImageActivity.class); startActivityForResult(インテント、0); – fr4n

+0

私が以下に使用したとき: Intent intent =新しいIntent(DatabasesActivity.this、ImageActivity.class); 「DatabasesActivityがスコープ内でアクセス可能な型の囲むインスタンスがありません」というエラーが表示されます。 –

1

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

+0

ありがとう@Josephus Villarey 私はすでにcont.startActivity(インテント)を使用しています。それは動作しません。 getContext()&cont値が両方とも 'com.moftak.db'であることを確認しました。ImageActivity 'はActvity1です。 –

+0

あなたがオーバーライドしたonClickメソッドを実際に通過しているかどうかを確認できますか? – josephus

+0

それは私が質問を更新したエラーを投げる。 –

0

は私の謝罪を受け入れてくださいコード

Intent intent = new Intent(custom_radiobutton.this ImageActivity.class); 
       // next line do nothing.. 
      getContext().startActivity(intent); 
関連する問題