質問

どのように私はListViewコントロールにイベントをクリックして聴いていますか?

これは私が今持っているものです。

ListView list = (ListView)findViewById(R.id.ListView01);  
...  
list.setAdapter(adapter);  

私が行うと、次の

list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {  
   public void onItemSelected(AdapterView parentView, View childView, 
                                                         int position, long id) 
   {  
       setDetail(position);  
   }

   public void onNothingSelected(AdapterView parentView) {  

   }  
});  

これはクリックで何もしていないようです。
そして、これらすべてのコードでは、活動を拡張するクラスの中に住んでいます。

役に立ちましたか?

解決

あなたのリストビューでは、使用setOnItemClickListener

他のヒント

と仮定リストビューオブジェクトは、次の操作を行い、LVである -

lv.setClickable(true);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

  @Override
  public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {

    Object o = lv.getItemAtPosition(position);
    /* write you handling code like...
    String st = "sdcard/";
    File f = new File(st+o.toString());
    // do whatever u want to do with 'f' File object
    */  
  }
});

あなたのアダプタクラスのgetViewメソッド()メソッドでは、「イベントをクリックして聞くことができる」「クリッカブル」膨張したビューを設定し、する必要があります。

convertView = mInflater.inflate(R.layout.list_item_text, null);
convertView.setClickable(true);
convertView.setOnClickListener(myClickListener);

と次のようにあなたのListActivityでクリックリスナーを宣言し、

public OnClickListener myClickListener = new OnClickListener() {
public void onClick(View v) {
                 //code to be written to handle the click event
    }
};

これは、あなたがBaseAdapterを拡張することにより、アダプタをカスタマイズしている場合にのみ当てはまります。

詳しくANDROID_SDK /サンプル/ ApiDemos / SRC / COM /例/アンドロイド/ APIの/ビュー/ List14.java参照

私の前に2つの答えが正しいです - あなたはOnItemClickListenerを使用することができます。

これは微妙な響きながらOnItemClickListenerOnItemSelectedListenerの違いは、項目の選択と集中をごAdapterViewのタッチモードと関連しているとして、実際に重要であることに注意することは良いことだ。

デフォルトでは、タッチモードでは、何も選択と集中はありません。 あなたは、件名に、さらに詳細な情報はここを見を取ることができます。

このソリューションは、本当に最小限で、めちゃくちゃにあなたのコードをしません。

あなたの list_item.xml の中の属性のアンドロイド割り当てる(NOTリストビュー!):このようにonClickの

<RelativeLayout android:onClick="onClickDoSomething">

、その後、あなたの活動に、このメソッドを呼び出します:

public void onClickDoSomething(View view) {
   // the view is the line you have clicked on
}

あなたは、誰かが言ったsetOnItemClickListener使用する必要があります。
コードはこのようにする必要があります:

listView.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        // When clicked, show a toast with the TextView text or do whatever you need.
        Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show();
    }
});
あなたの活動の

を使用setOnItemClickListener()API。サンプルを以下に示します。

listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){

@Override
public void onItemClick(AdapterView<> parent, View view, int position, long id)
{
     // your code here.
}

});

Kotlinでは、Javaのような単純なあなたのListViewコントロールにリスナーを追加します。

your_listview.setOnItemClickListener { parent, view, position, id ->   

    Toast.makeText(this, position, Toast.LENGTH_SHORT).show()

 }
scroll top