2010-09-17 128 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

相關問題