0

アルファベットを含む 26 個の異なるボタンがあります。D、I、Lを含むボタンが他のボタンをクリックした場合に画像ボタンを表示する必要がある場合、別のことが起こります。以下は私が試したものですが、これは機能していないようです。私は onTouchKeyListener() を認識していますが、コーディングが非常に膨大になる可能性があります。

imgD.setVisibility(View.INVISIBLE);
imgI.setVisibility(View.INVISIBLE);
imgL.setVisibility(View.INVISIBLE);

            if(d.isPressed()) {
                imgD.setVisibility(View.VISIBLE);
            }
4

4 に答える 4

3

各ボタンにタグを設定し、それを文字列から画像ボタンへのマップへのキーとして使用できます。そうすれば、シングル クリック リスナー (またはonClickメソッド) を使用して、適切な画像を簡単に取得できます。コードでは、setTag(Object)メソッドを使用します。XML では、属性を使用できandroid:tag="value"ます。

Map<Object, ImageButton> buttonMap = new HashMap<Object, ImageButton>();
// initialize the map

// later:
public void onClick(View v) {
    ImageButton btn = buttonMap.get(v.getTag());
    if (btn != null) {
        btn.setVisibility(View.VISIBLE);
    }
}

の代わりに、Mapボタン タグとイメージ ボタン タグを設定findViewWithTag()し、クリックしたボタンに対応するイメージ ボタンを検索するために使用できます。

public void onClick(View v) {
    View btn = findViewWithTag("img" + v.getTag());
    if (btn != null) {
        btn.setVisibility(View.VISIBLE);
    }
}
于 2013-08-01T00:07:45.077 に答える
1

xml ファイルにボタンを配置する場合は、すべてのボタンに android:onclick 属性を配置し、同じ関数にリンクします。

  android:onclick="myButtonOnClick"

次に、Javaコード、つまりこれらのボタンを含むアクティビティで、

  public void myButtonOnClick(View v){
       switch(v.getId()){

       }

       // put your logic here. 

  }
于 2013-08-01T00:12:41.503 に答える