9

ListViewを実装したいのですが、カーソルで問題ありません。現在、クリックした行に応じて、その行で押された情報に基づいて新しいアクティビティに移動します(必要に応じて、期待どおりに)。ただし、行を削除するボタンが欲しいので、ユーザーは行の任意の部分を押して新しいアクティビティを起動できますが、その行のボタンを押すと、行が削除されます(または削除アクティビティが起動されます/働き)。

@ DroidRecordを見ることができれば、私が達成しようとしているのと同様のレイアウトになっています。

ありがとう!

クリス。

4

6 に答える 6

9

Mariano Kamp が言ったように、行にボタンを追加すると「操作不能」になりますが、私の経験では、ボタンに次のプロパティを設定すると、この問題はなくなります。

    android:focusable="false"
    android:focusableInTouchMode="false"

リスト内のボタンを使用して Listactivity で onListItemClick を起動する方法も参照してください。

于 2010-05-04T12:28:36.277 に答える
6

別の可能な回避策 - ボタンの代わりに ImageView を使用し、ImageView の onClickListener を設定することができます (たとえば、セル ビューを拡張する場合)。

ImageView はフォーカス可能ではないため、OnListItemClick() のディスパッチを妨げません。画像をクリックすると、画像のリスナーのみが起動します。

于 2011-06-22T11:45:59.227 に答える
4

あなたの質問は何ですか?リスト行にボタンを追加するには?

行のレイアウトに追加されることを期待しているように、非常に単純です。

残念ながら、それは行全体を「手に負えない」ものにもします。私が尋ねた Google 開発者は、これは (私が覚えている限りでは) 設計によるものであり、これに対処するには TouchDelegate を使用する必要があると述べました。Androidソースにもサンプルがなく、私にとっては機能しなかった非常に薄いドキュメントしかないため

とにかく、リスト行のボタンを使用するアプリケーションは多くないようです。私が知っているのは私のもの ( newsrob、記事リストを参照) と目覚まし時計だけです。多分あなたはコンテキストメニューを使うことができますか?

そうしないと、 getView メソッドの行ビューで setOnClickListener() を呼び出すように追加することになります。

乾杯

于 2009-02-01T09:33:23.277 に答える
0

それはあなたの質問に対する答えではありませんが、ロングクリック/タブは通常、コンテキスト メニューをポップアップし、削除などの追加のアクションを配置する場所です。ここでその方法を読むことができます: How do you implement context menu in a ListActivity on Android?

于 2009-02-01T21:05:46.483 に答える
0

ボタンの状態を削除するヒントをくれたBoDに感謝したいと思います。focusable

ただし、ボタンが < selector > xml に存在focusablestate_focusedないため、そのデザインはユーザーに表示されなくなります。

ただし、これらのボタンは引き続き状態を取得しますpressedが、親ビューの他の場所 (別のボタン以外の場所) をクリックした場合も同様です!

あなた自身の場合には良い解決策ではないかもしれませんが、うまく機能することを覚えておいてください。

于 2011-12-12T13:21:20.180 に答える
0

ボタンをクリックできるようにこれを試しましたが、うまくいきませんでした android:focusable="false" android:focusableInTouchMode="false"

私がしたことは、アクティビティのレイアウトをスクロールビューに変更し、その中に linerLayout を追加することでした。その後、レイアウトにボタンを追加すると、各ボタンがクリック可能になります。

于 2013-04-23T00:13:20.490 に答える