2012-03-04 46 views
0

このような質問はたくさんありましたが、私は答えを見つけられませんでした。アクティビティ以外のクラスから新しいアクティビティを開始する

私が持っているもの:

  1. GridViewの +も押しにGridViewの上ウィッヒボタンを取得するOnClickListenerクラスを持っているButtonAdapterクラス、。

私は必要なもの:私は私のOnClickListenerクラスから新しいActivityを開始する必要があり

:(http://www.stealthcopter.com/blog/2010/09/android-creating-a-custom-adapter-for-gridview-buttonadapter/あなたはここで基本的な構造を見ることができます)。私が知っているように、私は主なアクティビティクラス(またはActivityを拡張する他のクラス)でのみ作ることができますが、これは本当に必要なものです。 私はこれだけの構造を知っている:私は私のOnClickListenerクラスからこの構造を使用することができるようにしたい

Intent i = new Intent(MyMain.this, MyNewActivity.class) 
startActivity(i); 

を。

答えて

3

ButtonAdapterコンストラクタでは、アダプタを作成するActivityのコンテキストを渡してから、Contextを使用して新しいActivityを開始します。

編集:あなたのButtonAdapterあなたOnClickListenerに渡しますのコンストラクタで取得

ButtonAdapter adapter = new ButtonAdapter(this);// this is the activity(if you create in an activity the adapter) 

Context あなたはこのような何かを行いますあなたのアダプタを構築する際にそのチュートリアル次のとおりです。

class MyOnClickListener implements OnClickListener 
    { 
    private final int position; 
private Context ctx; 

    public MyOnClickListener(int position, Context ctx) 
    { 
     this.position = position; 
this.ctx = ctx; 
    } 

    public void onClick(View v) 
    { 
     // Preform a function based on the position 
     someFunction(this.position) 
     Intent i = new Intent(MyMain.this, MyNewActivity.class) 
ctx.startActivity(i); 
    } 
    } 

とこのようにそれを使用します。

btn.setOnClickListener(new MyOnClickListener(position, mContext)); 
+0

アクティビティのコンテキストを渡す方法が見つかりませんでした。いくつかのコード例を書いてください。 – artouiros

+0

@ArthurShniv私は自分の答えを編集しました。 – Luksprog

+0

ありがとうございました。 – artouiros

0

MyOnClickListener.onClick()にViewオブジェクトがあるため、View.getContext()(http://developer.android.com/reference/android/view/View.html#getContext())を使用するだけで、 )を呼び出してコンテキストオブジェクトを取得し、別のアクティビティを開始します。

関連する問題