Blog -

カテゴリ : 
Android
執筆 : 
NickQ 2013-1-7 13:54

以前、自作ArrayAdapterをListViewにセットして

onListItemClickが発生しない場合の方法を投稿していたがそれでも発生しない場合

(ListActivityで無い場合など)

の対策方法として

ArrayAdapter側のgetViewでView自体にOnClickListenerを設定すると

Activity側のsetOnItemClickListenerが呼ばれる様になる方法を紹介します。

Activity側

onCreateなどで

 

   mListView = (ListView) findViewById(R.id.list);
   list = new ArrayList();
   list = dataSet(this); //<-データをセットする
   adapter = new CustomAdapter(this, R.layout.item, list);
   mListView .setAdapter(adapter);
   registerForContextMenu(mListView );
   //アイテムクリック
   mListView .setOnItemClickListener(new AdapterView.OnItemClickListener() {
     @Override
     public void onItemClick(AdapterView arg0, View arg1,int position,      long arg3) {
       Toast.makeText(getBaseContext(), list.get(position).getPointLocation(), Toast.LENGTH_SHORT).show();
       return;
     }
   });

 

ArrayAdapterのgetViewで

 

 public View getView(final int position, View convertView, final ViewGroup parent) {
   view = inflater.inflate(R.layout.list_item, parent, false);
   view.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
     ((ListView) parent).performItemClick(v, position, (long)0);
    }
   });
 }

 

とすると発生する様になります。

 

 

  • コメント (0)
  • トラックバック (0)
  • 閲覧 (8271)

トラックバック

トラックバックpingアドレス http://three-thread.sakura.ne.jp/tt/modules/d3blog/tb.php/41

コメントの投稿

コメント投稿に関するルール : 登録ユーザ以外のコメントは承認が必要
最新のコメント
  • NickQ(2012/11/19)
  • ゲスト(2012/11/19)
最新のトラックバック
メインメニュー

ログイン
ユーザー名:

パスワード:


SSL パスワード紛失


カテゴリ一覧

アーカイブ

Books