2013-06-24 4 views
3

Есть ли другой способ установить кнопку OnClickListener, кроме следующего метода, например, через XML?Другой способ установить «OnClickListener» кнопки в Android

final Button button = (Button) findViewById(R.id.button_id); 

button.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View v) { 
     // Handle click event. 
    } 

}); 
+4

что делает «по частям» означает? – Blackbelt

+0

Я просто хочу знать, можно ли написать этот код любым другим способом? – Amir

+0

Почему вы пытаетесь написать это по-другому? Какова ваша цель? Что не так с тем, как оно написано сейчас? –

ответ

5

1) Вы должны реализовать OnClickListener в этой опции, а затем реализовать свой абстрактный метод onClick(View).

class YourClass implements OnClickListener { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.your_activity); 
    final Button button = (Button) findViewById(R.id.button_id); 
    button.setOnClickListener(this); 
    } 

    public void onClick(View v) { 
      //do something 
    } 
} 

2) Другой вариант, вы можете также указать способ, что ваша кнопка будет запускать из файла layout.xml. Вы просто должны делать что-то вроде этого:

your_layout.xml

<Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:onClick="myCustomMethod" /> 

И обратно в класс актив- ности, вы просто реализовать этот метод

class YourClass{ 
    .... 


    public void myCustomMethod(View v){ 
    // do something 
    } 
} 
+0

juanmiguel @ thats it, что я хотел. Спасибо. – Amir

1
public void clickEvent(View v) 
{ 
    switch(v.getID()) 
    { 
     case R.id.ur_controlId: 
      //do something... 
      break; 
    } 
} 

onclick Объявите атрибут в XML и обеспечивают значение, как clickEvent.

+0

Android28 @ спасибо. Вы также в порядке – Amir

Смежные вопросы