2013-08-01 2 views
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); 
      } 
+0

проверка button.setOnClickListener() – ddmps

ответ

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); 
    } 
} 
0

Я рекомендую использовать onTouchKeyListener() с инструкцией переключателя.

+0

Я действительно не знаю, как я могу использовать onTouchKeyListener (переключатель) с заявлением? – ivesingh

1

Если поместить кнопки в файле XML, положить андроида: OnClick атрибут во всех кнопках и ссылку на ту же функцию:

android:onclick="myButtonOnClick" 

Затем в Java коде, то есть деятельность, которая содержит эти клавиши,

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

     } 

     // put your logic here. 

    } 
0

Один из способов сделать это, чтобы добавить ту же функцию для каждой кнопки в XML

android:onClick="someFunction" 

затем в Java

public void someFunction(View v) 
{ 
    TextView tv = (TextView)v; // cast the View clicked to a Button 
    String text = v.getText().toString(); // get the text of the Button 
    if ("D".equals(text) || "I".equals(text) || "L".equals(text)) // See if it matches 
    { 
     imgD.setVisibility(View.VISIBLE); 
     imgI.setVisibility(View.VISIBLE); 
     imgL.setVisibility(View.VISIBLE); 
    } 
}