1

simpleAdapterを使用して作成されたリストビューがあります。各行は、TableRowといくつかのTextViewを含むレイアウトによって定義されます。

(レイアウト内の)どのTextViewがクリックされたかを知るにはどうすればよいですか?

リストビューでOnItemClickListenerを使用すると、リストビューの行(位置)を取得できますが、その行のどのTextViewがクリックされたかはわかりません。

ユーザーがリストビューでクリックしたTextViewに応じて異なるアクションを実行したい

listview

-----------------------
TextView1 : TextView2 |     <--Row1
-----------------------
TextView1 : TextView2 |     <--Row2
-----------------------
TextView1 | TextView2 |     <--Row3
-----------------------

行2のTextView2がクリックされたことをお伝えしたいと思います。

うまくいけば、私は自分自身を十分に説明しています。

ありがとうございます

4

4 に答える 4

3

リストアクティビティで以下のコードを使用できます

  setListAdapter(new ArrayAdapter<String>(this, R.layout.your name, String Name));

  ListView lv = getListView();
  lv.setTextFilterEnabled(true);



  lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {

      // When clicked, show a toast with the TextView text
        Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
          Toast.LENGTH_SHORT).show();

    }
  });
}
于 2012-01-20T05:12:10.953 に答える
1

クリックが によって処理されている場合、どのWITHINがクリックさonItemClickれたかをこれから知ることはできません。は、リスト項目のクリックを処理するだけです。あなたが試すかもしれないのは、行内のすべてのビューをつかんでそこに設定するカスタムを使用することです。または、可能であればクラスで直接定義することもできます。ViewViewOnItemClickListeneradaptergetView()onClickListenersonClickListenersView

于 2012-01-20T04:45:07.857 に答える
0

アダプタで異なるビューのクリックを処理できます。アダプタはカスタマイズする必要があります

于 2012-01-20T05:12:38.740 に答える