Android onClick方法

我在android项目中有两个onclick方法

clr=(Button)findViewById(R.id.Button01); clr.setOnClickListener(new OnClickListener() { public void onClick(View v) { tv1.setText("CLR"); et1.setText(""); refrigerant = ""; pres = ""; temperature = ""; superheat_oda = 0; sub_cool = 0; } }); 

而我有OnClick方法,我必须直接调用该方法

  prs=(Button)findViewById(R.id.Button02); prs.setOnClickListener(new OnClickListener() { ----- I have to call that method--- } }); 

有没有解决scheme?

Solutions Collecting From Web of "Android onClick方法"

你想从第二个调用第一个onClick ? 只需在一个单独的方法中提取您的第一个onClick的内容,并从每个onClick调用该方法。

编辑:根据st0le的评论,你可以通过调用clr.performClick()来做你想要的。 (不知道。)仍然,提取到一个单独的方法似乎更清洁。

你应该转而使用我总是这样做的最简单的方法:

 @Override public void onCreate(Bundle savedInstanceState) { button1.setOnClickListener(onClickListener); button2.setOnClickListener(onClickListener); } private OnClickListener onClickListener = new OnClickListener() { @Override public void onClick(final View v) { switch(v.getId()){ case R.id.button1: //DO something break; case R.id.button2: //DO something break; } } }; 

你可以在XML文件中做这样的事情

 <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:onClick="some_function" /> 

并把这个函数放在Java文件中

 public void some_function(View view) { // stuff... } 

并将some_function放在“onClick”中

如果两个button真的必须做同样的事情,我会build议使用两个button相同的OnClickListener:

 OnClickListener l=new OnClickListener() { public void onClick(View v) { tv1.setText("CLR"); et1.setText(""); refrigerant = ""; pres = ""; temperature = ""; superheat_oda = 0; sub_cool = 0; } }; clr=(Button)findViewById(R.id.Button01); clr.setOnClickListener(l); prs=(Button)findViewById(R.id.Button02); prs.setOnClickListener(l); 

或者如果它不完全一样,你可以通过l.onClick(null)来访问监听器方法; 手动..