0

私は20以上を持ってTextViewおりImageView、私の活動では次のようになっています:

<GridLayout id="layout">
    <TextView android:id="@+id/t1" android:layout_width="wrap_content" .../>
    <TextView android:id="@+id/t2" android:layout_width="wrap_content" .../>
    ......
</GridLayout>

それぞれTextViewまたはImageView関連するコードがあります。

ここで、子ビューのクリック イベントを処理しようとしました。ロジックはかなり単純で、別のコードでサーバーからデータをフェッチします。

私はおそらくこれの一般的な方法を知っています:

findViewById("layout").setOnClickListener(this);

@Override
public void click(View v){
    switch(v.getId()){
        case R.id.t1 :
            doSearch(1);
        break;
        case R.id.t2 :
            doSearch(2);
        break;
        .....
    }
}

次に、 s が多すぎcaseます。

View次に、おそらく次のように、コードを直接バインドできるかどうか疑問に思います。

<TextView android:id="@+id/t1" android:layout_width="wrap_content" xx:code="1" .../>
<TextView android:id="@+id/t2" android:layout_width="wrap_content" xx:code="2" .../>

次に、この方法でイベントを処理できます。

@Override
public void click(View v){
    doSearch(v.getCode());
}

これは可能ですか、それとも他の選択肢はありますか?

4

1 に答える 1