2

これは私のカスタムOnClickListenerです。からGridviewボタンの位置を渡しますButtonAdapter.class。グリッドビューのボタンごとに新しいアクティビティを開きたい。自分にどのような変更を加える必要がありMyOnClickListener.classますか?

MyOnClickListener.class

import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;

public class MyOnClickListener implements OnClickListener {


private final int position;  

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

    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent intent = new Intent(v.getContext(), WordsList.class);
        v.getContext().startActivity(intent);
    }

}

私は解決策を得ました。私はこれを試しました、そしてそれはうまくいきます!

public class MyOnClickListener implements OnClickListener {


private final int position;  

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

public void onClick(View v) {
    // TODO Auto-generated method stub
    switch(position){
        case 0:
        Intent a = new Intent(v.getContext(), WordsList.class);
        v.getContext().startActivity(a);
        break;
    case 1:
        Intent b = new Intent(v.getContext(), About.class);
        v.getContext().startActivity(b);
        break;  

    }


}

}
4

3 に答える 3

4

またはのようなもの:

private Class[] activities = {
    Activity1.class,   // position=0
    Activity2.class,   // position=1
    //...
    };

public void onClick(View v) {
    Intent intent = new Intent(v.getContext(), activities[position]);
    v.getContext().startActivity(intent);
}

しかし、それは非常に単純で、多分私は要点を逃しましたか?

于 2012-08-31T09:18:04.310 に答える
1
public void onClick(View v) {
    // TODO Auto-generated method stub
 Intent intent; 
 switch(v.getId())
 {
    case R.id.btn1:
       intent = new Intent(v.getContext(), WordsList1.class);
       v.getContext().startActivity(intent);
       break;
    case R.id.btn2:
       intent = new Intent(v.getContext(), WordsList2.class);
       v.getContext().startActivity(intent);
       break;
  }

}
于 2012-08-31T09:12:05.730 に答える
0

OnItemClickListenerはアダプタベースのUIに特化しているため、使用する必要があると確信しています。ビュー自体(OnClickのように)だけでなく、発信者を識別して適切に行動するのを容易にする位置とIDも渡されます。

于 2012-08-31T09:16:22.420 に答える