2015-04-14 2 views
0

Мне было интересно Если бы кто-нибудь знал о способе получения OnClick Listener, для которого установлена ​​кнопка. Вроде как ...Функция возврата кнопок OnClick Listener Value

btn1.getOnClickListner 

Я хочу сделать, если заявление, как это ...

if (button.Onclick == onClick1) { 
do this... 
} else { 
do this... 
} 

Любая помощь будет высоко ценится

+0

Почему бы не только один 'OnClickListener', и иметь его ветви внутри' OnClick() 'на основе какого-либо государства (например, в' boolean')? – CommonsWare

+0

Потому что кнопка не имеет того же onClick все время. Он чередуется между двумя onClicks. Я пытаюсь сохранить, что в OnClick кнопка установлена ​​в saveInstanceState, поэтому я могу ее восстановить, если приложение изменится в альбомный режим. Кроме того, это будет гора работы, так как есть 7 кнопок с 14 OnClicks –

+1

«Потому что кнопка не имеет того же onClick все время» - и это то, что я предлагаю вам изменить. Иметь тот же «OnClickListener» все время. Пусть «OnClickListener» знает, как делать все, что нужно, используя соответствующую информацию о состоянии. «Также это будет гора работы, так как есть 7 кнопок с 14 OnClicks» - если вы считаете, что это «гора работы», вы можете столкнуться со многими большими горами с течением времени. – CommonsWare

ответ

0

Я нашел самый простой способ сделать это должен был принять совет CommonsWares и создать один onClick, используя booleans, чтобы дать ему отдельные методы для выполнения. Ниже приведен пример, если кто-то застрянет в попытке выполнить эту задачу. Спасибо всем, кто помог и поделился своими мыслями.

public class MainActivity extends Activity implements View.OnClickListener { 

    boolean separateOnClickActive; 
    Button btn1; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     btn1 = (Button) findViewById(R.id.button); 
     btn1.setOnClickListener(this); 

     separateOnClickActive = false; 
    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.button: 
       if (!separateOnClickActive) { 
        // Do Something Here 
        separateOnClickActive = true; 
       } else { 
        //Do Something Here 
       } 
       break; 
     } 
    } 
} 
Смежные вопросы