2

完成ListViewするまで、Androidをクリックできないようにしたいと思います。AysncTask

だから私は使った

lv.setClickable(false);

しかし、うまくいきません。ListViewまだクリックがかかります。助けが必要。

4

3 に答える 3

5

私にとってうまくいったのは、リスト項目の XML に 2 つの属性を設定することです。と を設定clickable="false"focusable="true"ました。したがって、私のリスト項目のそれぞれは、次のような XML ファイルを膨らませています。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clickable="false"
    android:focusable="true" >

    <!-- Children here -->

</LinearLayout>

これが私の推測ですが、なぜこれが機能するのか正確にはわかりません:

  • LinearLayout はクリック可能ではありませんが、その中の子はまだクリック可能であるため、クリック可能な属性だけを使用しても機能しません。次に、子はクリックイベントを取得しますが、それを使用せずに LinearLayout に転送します。

  • LinearLayout をフォーカス可能にすることで、クリック イベントを受け取り、クリック可能ではないためドロップします。

お役に立てれば。このアプローチが機能する理由を誰かが確実に知っている場合は、声をかけてください.

于 2013-10-02T04:13:35.397 に答える
1

代わりにこれを試してください:

    lv.setEnabled(false);

編集:申し訳ありませんが私のせいです。

問題は、クリックしている ListView ではなく、ListView 内の各項目を表すビューであると思います。だからこれを試してください:

View itemView = lv.findViewTraversal(id_of_your_view);
itemView.setClickable(false);

これがうまくいくことを願っています。

于 2012-07-22T09:49:02.120 に答える
0
  1. setFocusable/setEnabledメソッドを試しましたか?
  2. onItemClickメソッドで次のことができます。

if(!mWorking){ mWorking = true; //do the job... }

  1. SimpleOnGestureDetectorの実装を試みて、 onSingleTapConfirmedメソッドをオーバーライドすることができます。グーグルにはたくさんのタットがあります。

これがお役に立てば幸いです

于 2012-07-22T09:56:13.387 に答える