wandering-engineer.tech
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 〜モールス信号でつぶやこう〜 参考 ListView の ArrayAdapter