TableLayoutを使用して商品カテゴリを抽出することを選択しました。TableLayout onClickListener:行/列を取得
データは動的に取得され、レンダリングされます。私はそれにTableRowとImageViewの両方を追加しています。
TableRowごとに3つのアイテムがある場合、onClickListener
はどのように処理できますか?
は、私が使用し、レイアウトを変更することはできませんので、私は現在の状況に解決策を探しています
TableLayoutを使用して商品カテゴリを抽出することを選択しました。TableLayout onClickListener:行/列を取得
データは動的に取得され、レンダリングされます。私はそれにTableRowとImageViewの両方を追加しています。
TableRowごとに3つのアイテムがある場合、onClickListener
はどのように処理できますか?
は、私が使用し、レイアウトを変更することはできませんので、私は現在の状況に解決策を探しています
いいえ、動的行を作成するときは、 forループ:以内:ループ自体の[注内部各子要素の増分変数
setonclickリスナーを使用して、テーブルの行のそれぞれの子要素に対する
使用setTag()
又はsetTag(key, tag)
: これを行いますループ] onclicklistenersのonclick(View v)
で
のために、あなたは[にタグを変換するv.getTag()
を使ってクリックしたビューを取得することによって、個々のクリックを検出することができます必要なデータ型]
ありがとうございました! –
@MarekSebera:大歓迎です! –
あなた膨張したレイアウトはXMLでこのような何かを見なければならないでしょう:Javaで
<TableRow android:id="@+id/somerow">
<TextView android:id="@+id/row_item1" android:duplicateParentState="true" .... />
<TextView android:id="@+id/row1_item2" android:duplicateParentState="true" .... />
<TextView android:id="@+id/row1_item3" android:duplicateParentState="true" .... />
</TableRow>
ので、行を展開した直後に次のようなことを行う必要があります。
// there is some var tableRow of type TableRow
TextView myTextView = new TextView(......);
myTextView.setOnClickListener(myOnClickListener); // this is the important part
myTableRow.addView(myTextView);
の中の項目に@android_hungryがあり、この 'duplicateParentState'属性で' row1_item1/2/3'をどのように扱うことができますか? –
私はあなたの質問が間違っていると思います。私はあなたが3つのすべての項目で1つのclickListenerを管理する方法を尋ねていると思った。 clickListenerを別に設定したい場合は、 tableRow.findViewById(R.id.row_item1).setOnClickListener(myOnClickListener1); またはTextViewを動的に作成する場合は、onClickListener – Jordi
を直接追加して、各ビューに匿名のonclicklistenerを追加することをお勧めします。 –
このテーブルにデータをロードするにはどうすればよいですか?そして、なぜあなたは使用されたレイアウトを変更できませんか?行のアイテムに対して 'duplicateParentState'をtrueに設定し、行のonClickListenerを設定します。 – Jordi
@ Jordiプログラムで読み込みます。組織上の理由からレイアウトを変更することはできません。あなたは最後の文が私のために意味をなさない、あなたは答えとしてそれを提供することができますか?ありがとう –
@MarekSebera:あなたはtablerowまたはtablerow自体の要素のクリックを検出したいですか? –