Android ArrayAdapterからstartActivityする方法

AndroidのListViewでは独自のAdapterを作ってListViewにセットすることができます。
今回、独自のAdapterを作ってその中からあるアイコンをタップした時に別画面へ遷移させる方法がわからなかったので調べてみました。

ArrayAdapter内でstartActivityができないのはstartActivityがContextクラスのメソッドだかららしいです。
調べてみたら方法が載っていました。

    @Override
public View getView(int position, View convertView, ViewGroup parent) {
// アイコン
SmartImageView icon = (SmartImageView) convertView.findViewById(R.id.icon);
icon.setImageUrl(item.getUser().getProfileImageURL());
// アイコンをタップするとリプライできるように
icon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent replyToOther = new Intent(getContext(), TweetActivity.class);
replyToOther.putExtra("jp.sub.takelab.twitmorus.replyToOther", item.getUser().getScreenName().toString());
v.getContext().startActivity(replyToOther);
}
});
return convertView;
}
     v.getContext().startActivity(replyToOther);

Viewからcontextを取得してそこからstartActivityできるそうです。
この方法でTwitMorseもAdapterを共通化しています。



ダウンロードよろしくおねがいします!

TwitMorse 〜モールス信号でつぶやこう〜

btn_googleplay_01

参考

ListView の ArrayAdapter 内で定義したボタンから startActivity(intent); を実行したい

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください