Androidプロジェクトに2つの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---
}
});
これに対する解決策はありますか?
2番目から最初のonClick
を呼び出しますか?別のメソッドで最初のonClickのコンテンツを抽出し、各onClick
からそのメソッドを呼び出すだけです。
編集:st0leのコメントに従って、clr.performClick()
を呼び出すことにより、必要な操作を実行できます。 (それは知りませんでした。)それでも、それを別のメソッドに抽出する方がきれいに見えます。
あなたは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"に配置します
あなたは私が常に以下のように行う最も簡単な方法を使用するようにすべきです:
@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;
}
}
};
両方のボタンが実際に同じことをする必要がある場合は、両方のボタンに同じ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);によってリスナーメソッドにアクセスできます。手動で.