2010-09-17 59 views
7

我已经在Android项目的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; 
} 
    }); 

2种的onclick方法,我有onther的onClick方法中,我要直接打电话

prs=(Button)findViewById(R.id.Button02); 
    prs.setOnClickListener(new OnClickListener() { 


        -----  I have to call that method--- 

               } 
    }); 

该方法是否有此任何解决方案?

+3

我建议你遵循'benvd'建议,但仍然为了它, 在Listener中使用'clr.performClick()'。 – st0le 2010-09-17 09:31:21

回答

14

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

编辑:根据st0le的评论,你可以通过调用clr.performClick()做你想做的。 (不知道。)但是,将其解压为单独的方法似乎更清晰。

1

我会建议使用相同的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侦听器方法(空值);手动..

7

您应该转向使用我总是做如下简单的方法:

@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; 
       } 

    } 
}; 
+0

按钮建议将打破每一个案例。这将使它更有效率。 – 2016-07-03 08:42:41

5

你可以做这样的事情的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”上

+0

的'(查看视图)'函数的参数是疑难杂症。谢谢! – 2016-11-13 18:17:08

相关问题