布局文件:
<span style="font-size:10px;"><TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="0"
android:id="@+id/tv_1"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:textSize="18dp"
android:gravity="center" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_1"
android:layout_alignParentStart="true">
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="+"
android:id="@+id/btn_add"
android:layout_below="@+id/tv_1"
android:layout_alignParentStart="true"
android:layout_weight="1"/>
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="-"
android:id="@+id/btn_sub"
android:layout_alignBaseline="@+id/btn_add"
android:layout_alignBottom="@+id/btn_add"
android:layout_alignParentEnd="true"
android:layout_gravity="center_horizontal"
android:layout_weight="1"/>
</LinearLayout></span>
第一种方式: 在xml文档中,指定onClick属性
<Button
android:id="@+id/btn_add"
style="?android:attr/buttonStyleSmall"
android:layout_width="80sp"
android:layout_height="wrap_content"
android:layout_below="@id/tv_1"
android:layout_marginLeft="50dp"
android:layout_marginTop="42dp"
android:onClick="onClick"
android:text="+" />
然后直接定义一个onClick事件处理
//没有@verride
public void onClick(View view){
int count = Integer.parseInt(tv_1.getText().toString());
switch (view.getId()){
case R.id.btn_add:
count++;
break;
case R.id.btn_sub:
count--;
}
tv_1.setText(count+"");
}
第二种方式:给每个button设置监听器(匿名内部类)
btn_add.setOnClickListener(new View.OnClickListener() {
int count = Integer.parseInt(tv_1.getText().toString());
@Override
public void onClick(View v) {
count++;
tv_1.setText(count + "");
}
});
btn_sbu.setOnClickListener(new View.OnClickListener() {
int count = Integer.parseInt(tv_1.getText().toString());
@Override
public void onClick(View v) {
count--;
tv_1.setText(count+"");
}
});
第三种方式 :自定义一个类,实现OnClickListener接口
class myOnclickListener implements View.OnClickListener {
@Override
public void onClick(View view) {
int count = Integer.parseInt(tv_1.getText().toString());
switch (view.getId()){
case R.id.btn_add:
count++;
break;
case R.id.btn_sub:
count--;
}
tv_1.setText(count+"");
}
}
<pre name="code" class="plain">//find()找到指定的button的id
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
find();
btn_add.setOnClickListener(new myOnclickListener());
btn_sbu.setOnClickListener(new myOnclickListener());
}
第四种方式:自身实现OnClickListener
public class MainActivity extends ActionBarActivity implements View.OnClickListener {
private TextView tv_1;
private Button btn_add;
private Button btn_sbu;
public void find(){
tv_1 = (TextView) findViewById(R.id.tv_1);
btn_add = (Button) findViewById(R.id.btn_add);
btn_sbu = (Button) findViewById(R.id.btn_sub);
}
@Override
public void onClick(View view) {
int count = Integer.parseInt(tv_1.getText().toString());
switch (view.getId()){
case R.id.btn_add:
count++;
break;
case R.id.btn_sub:
count--;
}
tv_1.setText(count+"");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
find();
btn_add.setOnClickListener(this);
btn_sbu.setOnClickListener(this);
}
按钮多的情况下推荐使用第四种方法