2015-04-27 4 views
0

В моем приложении много действий, каждое действие имеет одну и ту же кнопку, Я хотел бы установить прослушиватель кнопки в общедоступном классе, а затем каждая из них могла бы использовать его. Могу ли я? И как это сделать? Большое спасибо!android: многие функции имеют один и тот же onclicklistener

, например:

public class MainActivity extends Activity implements OnClickListener{ 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    MessageSend ms=new MessageSend(getApplicationContext(),???); 

} 

}

public class MessageSend implements OnClickListener{ 


public MessageSend(Context context,???){ 

this.context=context;  
View mView=LayoutInflater.from(context).inflate(R.layout.layout_message_send, null); 
Button button= (Button)mView.findViewById(R.id.button); 
button.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     //Do someting 
    } 
}); 
} 

} Схема activity_main включают layout_message_send. Могу ли я использовать способ прослушивания кнопки? если мог, ??? парам есть? если нет, можете ли вы дать мне образец? спасибо, !!!!!!

+1

Нужна дополнительная информация. – Abby

+0

да, вы можете. Вопрос в том, все ли они выполняют одно и то же действие на onClick? –

+0

Попробуйте принять любой шаблон дизайна. В вашем случае я надеюсь, что вы можете прочитать стратегию. Создайте класс, который реализует View.Onclicklistenern. Добавьте код в onClick. Добавьте конструктор, передающий ApplicationContext. затем нажмите кнопку мыши, создайте новый объект пользовательского прослушивателя и передайте контекст в конструкторе. Используя переданный контекст, напишите собственный код в пользовательском классе onclick m ethod. –

ответ

1

Первый См этот вопрос/ответ по этой ссылке ..

https://softwareengineering.stackexchange.com/questions/110106/what-is-the-proper-way-to-implement-the-onclicklistener-interface-for-many-butto

Используйте любой из них или Попробуйте другой способ, который описан ниже.

Если вы хотите использовать один и тот же метод для нескольких кнопок из разных действий, и вы не хотите повторять код.

Я предпочитаю делать общий класс для всех видов деятельности.

Пример

Создать class и public static метод в этом class, и использовать этот метод для различных Button из различных Activities.

public class CommonUtils { 

    // Common Functions 
    public static void yourMethodName(Context contx,Other Params) { 
     //Do ur code 
    } 
} 

Напишите этот код, если вы хотите использовать эту функцию. Вы можете написать это на кнопке onClickListener();

CommonUtils.yourMethodName(Your params); 

Это поможет вам сделать меньше кодирования, и вам нужно изменить только один раз, если вы когда-либо захотите что-либо изменить.

+0

Может быть, я не описываю четко, я его отредактировал, ты хотел бы мне помочь?Большое спасибо! – JinJieGoo

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