Scenario: I have three buttons defined in xml
<button android:id="@+id/firstbtn"
...
/>
<button android:id="@+id/secbtn"
...
/>
<button android:id="@+id/thirdbtn"
...
/>
In Java one way to listen to them is Button firstbtn = (Button) findViewById(R.id.firstbtn); firstbtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Toast.makeText(getBaseContext(), "You have clicked first button", Toast.LENGTH_SHORT).show(); } });
for second btn , same code has to be repeated with different id ??
How can I make it generic enough that , it can listen to all buttons (say in for loop) and while handling I should be able to differentiate different btns. (may be get elements id)
Best Answer
Instead of a huge set of
findViewById
calls I rather like to use theonClick="methodName"
xml attribute. For example:In the activity where the layout is shown just add a method
You can also put the onClick and clickable attributes into the res/styles.xml file to save even more typing:
Your layout is then simplified to