0

私のアプリには、それぞれにaとaがRelativeLayout付いたsがいくつかあります。sをクリック可能にしました(そしてそれはうまく機能します)。問題は、それらに埋め込まれているsもクリック可能であり、ユーザーがリストのある領域をクリックしようとすると、クリックが代わりにリストに登録されることです。TextViewListViewRelativeLayoutListViewRelativeLayout

ListViewsをclickable="false"とに設定してみましたfocusable="false"。私はsを試してみdescendantsFocusability="blocksDescendants"ましたRelativeLayout。それらは機能しません。

解決策は何ですか?これは私の最初のアプリです、私は何かが足りませんか?

4

2 に答える 2

0

android:onClick attribute = ""を持つようにlistViewオブジェクトを定義していない場合、私が知っている限り、それらはクリックイベントに応答しないはずです。ただし、clickable="false"に設定しても問題はありません。

AndroidアクティビティでonClickイベントを管理する最も簡単な方法は、次の方法でクリックイベントを監視する必要があるレイアウトの各ビューを定義することです。

public void onClick(View v) {
    switch(v.getId()){
          case R.id.ITEM1 :
              //Insert stuff to do when clicked here
          break;
          case R.id.ITEM2 :
              //Insert stuff to do when clicked here
          break;
    }
}

このメソッドは、プログラムまたはXMLレイアウトのいずれかで定義された相対レイアウトと適切なビューを持つアクティビティに実装する必要があります。switch caseを使用したくない場合は、if(v.getId()== R.id.ITEM_TO_CHECK)..の行に沿った条件でif-elseステートメントをいつでも置き換えることができます。

乾杯、

ジェイミー

于 2012-09-28T01:17:27.607 に答える
0

リストのアイテムのonItemClickメソッドを、親のRelativeLayoutのonClickメソッドを模倣することで、問題を解決しました。

親のRelativeLayoutがfragmentAにつながる場合、その子リストの各アイテムもfragmentAにつながります。

これは少し中途半端で安価な感じがしますが、今のところは機能します。

于 2012-09-29T18:47:13.417 に答える