これは私の簡単なアダプタです:アダプタで生成されたボタンにクリックリスナーを設定するにはどうすればよいですか?
public class MainAdapter extends BaseAdapter {
private Context mContext;
private Integer[] mText = {
R.string.main_team,
R.string.main_league,
R.string.main_economy,
R.string.main_arena,
R.string.main_staff,
R.string.main_team_up
};
public MainAdapter(Context c) {
mContext = c;
}
@Override
public int getCount() {
return mText.length;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Button buttonView;
if (convertView == null) { // if it's not recycled, initialize some attributes
buttonView = new Button(mContext);
buttonView.setLayoutParams(new GridView.LayoutParams(85, 45));
//imageView.setScaleType(Button.ScaleType.CENTER_CROP);
buttonView.setPadding(4, 4, 4, 4);
} else {
buttonView = (Button) convertView;
}
buttonView.setText(mText[position]);
return buttonView;
}
}
すべてのボタンには独自の意思を開始する必要があります。 私はポジションに基づいてスイッチケースを使用することを考えていましたが、解決策としては本当に「ばかげた」ようです。
配列を使用しましたが、OnClickListenerの配列を選択した後、View arg0を使用してアクティビティを起動しました。 – dierre
このようなonClickアクションのための別の配列については否定的です。つまり、2つの配列を維持して、それらを同期させておく必要があります。 mText配列内で2つのものを動かした場合、関連するonClickListenerも移動する必要があります。 – C0deAttack
本当に、それはメインメニューだと言わなければならないので、実際に移動させる本当の理由はありませんが、そのことを念頭に置いておきます。 – dierre