我是Android初学者,并且想知道:
我可以将2个按钮链接到相同的,1个onClick方法(我可能会覆盖以接受2个额外参数,例如int btnId和View targetTextView)以确定调用该方法的按钮和然后更新哪个TextView文本?
例如: btn1将更新text_view_1上的文字 和btn2将更新text_view_2。
除了他们我们将链接到相同的方法:
public void generalOnClick(View view, String btnId, String textViewId){...}
答案 0 :(得分:0)
将标记设置为按钮并使用onClick方法验证它是否已触发按钮单击事件,如果它不起作用则遵循以下技巧,
定义一个常用的方法,用于在按钮点击时执行的功能,使其成为常用功能。
为两个按钮定义独立的onclick事件,然后在调用上面创建的公共函数时传递一些唯一的参数并验证它。
答案 1 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="One"
android:onClick="btnClick"/>
<TextView
android:id="@+id/two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Two"
android:onClick="btnClick"/>
</LinearLayout>
按钮点击您的活动中的功能
public void btnClick(View view) {
TextView tv = (TextView)view;
int id = tv.getId();
if(id==R.id.one) {
tv.setText("One Clicked");
} else if(id==R.id.two){
tv.setText("Two Clicked");
}
}
答案 2 :(得分:0)
使用以下代码:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View.OnClickListener clickListener = new View.OnClickListener() {
public void onClick(View v) {
if(v.getId().Equals(btn1.getId())){
//do your work here
}
else{
//work for 2nd button
}
};
btn1 = (Button)findViewById(R.id.btn_1);
btn2 = (Button)findViewById(R.id.btn_2);
btn1.setOnClickListener(clickListener);
btn2.setOnClickListener(clickListener);
}