bin*_*dal 10 android onclick button
我在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;
}
});
Run Code Online (Sandbox Code Playgroud)
我有onClick方法,我必须直接调用该方法
prs=(Button)findViewById(R.id.Button02);
prs.setOnClickListener(new OnClickListener() {
----- I have to call that method---
}
});
Run Code Online (Sandbox Code Playgroud)
这有什么解决方案吗?
ben*_*nvd 15
你想onClick从第二个打电话给第一个?只需在单独的方法中提取第一个onClick的内容,然后从每个方法中调用该方法onClick.
编辑:根据st0le的评论,你可以通过调用做你想做的事clr.performClick().(不知道.)尽管如此,将其提取到一个单独的方法似乎更清晰.
小智 11
你可以在XML文件中做这样的事情
Run Code Online (Sandbox Code Playgroud)<Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:onClick="some_function" />
并将此函数放在Java文件中
public void some_function(View view) {
// stuff...
}
Run Code Online (Sandbox Code Playgroud)
并将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;
}
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84047 次 |
| 最近记录: |