33

でAndroidを実装listviewしましたListActivity。ここで、リストアイテムをクリックすると、フラッシュカラー(オレンジ色)も表示されないときにアクションが実行されないという問題があります。それで、私の質問に対するこの親切な答えについて何か考えがありますか。

@Override
protected void onListItemClick(ListView l, View v, int position, long id) 
{
    super.onListItemClick(l, v, position, id);
    Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT)
            .show();

}

このコードもMainListActivityに入れました。

4

10 に答える 10

122

ここで最初に注意しなければならないのは、ボタンなどのクリック可能な要素が存在する場合、または要素に存在する場合は常にImageButtonsListViewクリックイベントを制御することです。そのためListView、クリックイベントを受け入れる機会がありません。

単に行う必要があるのは、ListViewにあるまたはのfocusable属性をfalseに設定することです。しかし、それでも問題なく動作し、ListViewも動作します。ButtonImageButtononListItemClick

これを試して、

        <Button  android:id="@+id/textsize_increaser"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/back_button"
        android:focusable="false"
        android:text=" A + "/>

ここにこれを追加しましたがandroid:focusable="false"、正常に動作します。それを試してみてください。

于 2012-07-24T05:39:25.577 に答える
12

ListViewの選択モードをSINGLEに設定しましたか?

     listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

また、リストアイテムにクリック可能なimageview、textview、またはボタンがある場合は、それらを(Adapterクラスで)フォーカスできないようにします。

        yourButton.setFocusable(false);
        yourButton.setFocusableInTouchMode(false);
于 2012-07-23T09:50:55.863 に答える
4

カスタムアダプタを使用していますか?ボタンまたは子としてリストリストビューのフォーカスを奪うビューを使用してレイアウトを膨らませると、明らかに機能しなくなります。必ず設定してください

    android:focusable="false"

xmlファイルのそのようなビューに。これがあなたのために働くことを願っています。

于 2012-07-23T09:58:28.807 に答える
4

これをlistactivityjavaファイルに設定します

listview1.setFocusable(false);
于 2012-07-23T10:00:51.943 に答える
2

実際には、子ビューがフォーカスされないようにするためのパラメータがあります。親レイアウトに次を追加するだけです。

android:descendantFocusability="blocksDescendants"

ドキュメントで説明されているように:

ViewGroupは、その子孫がフォーカスを受け取るのをブロックします。

于 2016-05-28T14:28:45.740 に答える
1

EclipseはtextIsSelectable="true"、リストビューに使用されたレイアウトxmlのTextViewに追加することを提案しました。

リスト内のアイテムをクリックする場合は、それらのタグを追加しないでください。

于 2013-05-03T20:09:34.140 に答える
1

あなたが

  1. リストビューでスクロールビューを使用しない
  2. リストビューの行アイテムレイアウトでスクロールビューを使用しない

上記の場所のいずれかにスクロールビューが存在する場合は、それを削除します

于 2017-07-11T04:33:11.283 に答える
0

解決策については、この投稿を参照してください。

ListitemListviewandroidでクリックが機能していません

View v = parent.getChildAt(position);
parent.requestChildFocus(v,view);
v.setBackground(res.getDrawable(R.drawable."Some drawable for clicked row"));

int count = parent.getChildCount();
for(int i=0; i<count; i++)
{
   if(i!=position)
   {
     v = parent.getChildAt(i);
     v.setBackground(res.getDrawable(R.drawable."some drawable for not clicked row));
   }
}
于 2013-06-27T14:35:22.120 に答える
0
listview.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v, int pos,
                    long id) {
                Toast.makeText(v.getContext(), exm.get(pos).getDefinition(),
                        Toast.LENGTH_SHORT).show();


            }
        });
于 2014-04-12T08:24:27.983 に答える
0
listItemButton.setFocusable(false);
listItemButton.setFocusableInTouchMode(false);

上記をアダプタに設定します。XMLでは機能しません

于 2018-02-19T06:21:10.007 に答える