如何用switch方法来实现多个按钮的监听
方法一:
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/tv0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_vertical"
android:text="@string/hello_world" />
<TextView
android:id="@+id/m"
android:layout_width="fill_parent"
android:layout_height="100sp"
android:gravity="center_vertical" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/bt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#000000" />
<Button
android:id="@+id/bt2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00ff00" />
<Button
android:id="@+id/bt3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00cc00" />
</LinearLayout>
<TextView
android:id="@+id/n"
android:layout_width="fill_parent"
android:layout_height="50sp"
android:gravity="center_vertical" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/a" />
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/b" />
<TextView
android:id="@+id/tv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/c" />
</LinearLayout>
</LinearLayout>
MainActivity.java
package com.example.switchonclick;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity{
TextView jtv0=null;
TextView jtv1=null;
TextView jtv2=null;
TextView jtv3=null;
Button jbt1=null;
Button jbt2=null;
Button jbt3=null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
jtv0=(TextView) findViewById(R.id.tv0);
jtv1=(TextView) findViewById(R.id.tv1);
jtv2=(TextView) findViewById(R.id.tv2);
jtv3=(TextView) findViewById(R.id.tv3);
jbt1=(Button) findViewById(R.id.bt1);
jbt2=(Button) findViewById(R.id.bt2);
jbt3=(Button) findViewById(R.id.bt3);
jtv1.setOnClickListener(new onclick());
jtv2.setOnClickListener(new onclick());
jtv3.setOnClickListener(new onclick());
jbt1.setOnClickListener(new onclick());
jbt2.setOnClickListener(new onclick());
jbt3.setOnClickListener(new onclick());
}
private class onclick implements View.OnClickListener{
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv1:
jtv0.setText("您点击了tv1");
// Toast.makeText(getApplicationContext(), "您点击了",Toast.LENGTH_LONG).show();
break;
case R.id.tv2:
jtv0.setText("您点击了tv2");
break;
case R.id.tv3:
jtv0.setText("您点击了tv3");
break;
case R.id.bt1:
jtv0.setText("您点击了bt1");
break;
case R.id.bt2:
jtv0.setText("您点击bt2");
break;
case R.id.bt3:
jtv0.setText("您点击了bt3");
break;
}};
}
}
方法二:
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/tv0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_vertical"
android:text="@string/hello_world" />
<TextView
android:id="@+id/m"
android:layout_width="fill_parent"
android:layout_height="100sp"
android:gravity="center_vertical" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/bt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#000000"
android:onClick="onClick" />
<Button
android:id="@+id/bt2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00ff00"
android:onClick="onClick" />
<Button
android:id="@+id/bt3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00cc00"
android:onClick="onClick" />
</LinearLayout>
<TextView
android:id="@+id/n"
android:layout_width="fill_parent"
android:layout_height="50sp"
android:gravity="center_vertical"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<!-- 给TextView添加Onclick事件还需要配置android:clickable="true",否则点击无效。-->
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/a"
android:clickable="true"
android:onClick="onClick" />
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/b"
android:clickable="true"
android:onClick="onClick" />
<TextView
android:id="@+id/tv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/c"
android:clickable="true"
android:onClick="onClick" />
</LinearLayout>
</LinearLayout>
MainActivity.java
package com.example.switchonclick;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener{
TextView jtv0=null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
jtv0=(TextView) findViewById(R.id.tv0);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.tv1:
jtv0.setText("您点击了tv1");
// Toast.makeText(getApplicationContext(), "您点击了",Toast.LENGTH_LONG).show();
break;
case R.id.tv2:
jtv0.setText("您点击了tv2");
break;
case R.id.tv3:
jtv0.setText("您点击了tv3");
break;
case R.id.bt1:
jtv0.setText("您点击了bt1");
break;
case R.id.bt2:
jtv0.setText("您点击了bt2");
break;
case R.id.bt3:
jtv0.setText("您点击了bt3");
break;
}}
}
在方法二中,给TextView注册监听时,一定要还需要配置android:clickable="true",否则点击无效。
下面是运行效果图: