Android事件处理:事件处理就是对组件设置相应的监听器,在main.xml文件中设置好组件后,在MainActivity.java文件中对组件设置监听器实现相应功能。

1、单击事件(OnClickLisenter)

代码(实现数字的计算功能):


<LinearLayout//总体的布局方式是线性垂直排列
xmlns:android=" http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout//在总体布局下嵌套了一个线性水平排列的布局方式
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<EditText
android:id="@+id/edit1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text1"
/>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<EditText
android:id="@+id/edit2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text2"
/>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text7"
/>
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
<RelativeLayout //在总体布局下设置了一个相对布局
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/but1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text3"
/>
<Button
android:id="@+id/but2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/but1"//but2相对于but1在其右边
android:text="@string/text4"
/>
<Button
android:id="@+id/but3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/but2"
android:text="@string/text5"
/>
<Button
android:id="@+id/but4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/but3"
android:text="@string/text6"
/>
</RelativeLayout>
</LinearLayout>
MainActivity.java文件:

package com.example.myclick;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {
private TextView showView = null;//显示结果
private TextView note = null;//两个输入框之间的符号
private EditText edit1 = null;//定义输入框组件1
private EditText edit2 = null;//定义输入框组件1
private Button butJia = null;//定义Button组件
private Button butJian = null;
private Button butCheng = null;
private Button butChu = null;
private double num1 = 0;
private double num2 = 0;
private TextView Error = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
this.showView = (TextView)super.findViewById(R.id.text);//通过id取得文本组件,这就是在写组件是要设置id的原因之一。
this.Error = (TextView)super.findViewById(R.id.text3);
this.edit1 = (EditText)super.findViewById(R.id.edit1);
this.edit2 = (EditText)super.findViewById(R.id.edit2);
this.butJia = (Button)super.findViewById(R.id.but1);
this.butJian = (Button)super.findViewById(R.id.but2);
this.butCheng = (Button)super.findViewById(R.id.but3);
this.butChu = (Button)super.findViewById(R.id.but4);
this.note = (TextView)super.findViewById(R.id.text2);
this.butJia.setOnClickListener(new JiaListener());//设置单击事件监听器
this.butJian.setOnClickListener(new JianListener());
this.butCheng.setOnClickListener(new ChengListener());
this.butChu.setOnClickListener(new ChuListener());
this.edit1.setOnClickListener(new removeEdit1());
this.edit2.setOnClickListener(new removeEdit2());
}
private class removeEdit1 implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MainActivity.this.edit1.setText("");//当点击输入框里的文字时,文字会清空。
}
}
private class removeEdit2 implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MainActivity.this.edit2.setText("");
}
}
private class JiaListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MainActivity.this.num1 = Double.valueOf(MainActivity.this.edit1.getText().toString());
MainActivity.this.num2 = Double.valueOf(MainActivity.this.edit2.getText().toString());
MainActivity.this.note.setText(" + ");
MainActivity.this.showView.setText(" = " + String.valueOf(num1 + num2));
}
}
private class JianListener implements OnClickListener {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MainActivity.this.num1 = Double.valueOf(MainActivity.this.edit1.getText().toString());
MainActivity.this.num2 = Double.valueOf(MainActivity.this.edit2.getText().toString());
MainActivity.this.note.setText(" - ");
MainActivity.this.showView.setText(" = " + String.valueOf(num1 - num2));
}
}
private class ChengListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MainActivity.this.num1 = Double.valueOf(MainActivity.this.edit1.getText().toString());
MainActivity.this.num2 = Double.valueOf(MainActivity.this.edit2.getText().toString());
MainActivity.this.note.setText(" * ");
MainActivity.this.showView.setText(" = " + String.valueOf(num1 * num2));
}
}
private class ChuListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MainActivity.this.num1 = Double.valueOf(MainActivity.this.edit1.getText().toString());
MainActivity.this.num2 = Double.valueOf(MainActivity.this.edit2.getText().toString());
MainActivity.this.note.setText(" / ");
MainActivity.this.showView.setText(" = " + String.valueOf(num1 / num2));
}
}
}
注:当你单击一个组件而你又想程序作出反应这就是设置单击事件监听器主要作用。



2、单选钮(OnCheckedChangeListener)

代码:(当点击一个单选钮时程序做出反应)


<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/show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="45px"
android:text="@string/text3"
/>
<RadioGroup //设置单选钮组件
android:id="@+id/superCar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<RadioButton //设置单选钮
android:id="@+id/RB1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text1"
/>
<RadioButton
android:id="@+id/RB2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text2"
/>
</RadioGroup>
</LinearLayout>

MainActivity.java文件内容。

package com.example.radiolistenerdemo;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View.OnClickListener;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView text = null;//定义文本组件
private RadioGroup car = null;//定义一个盛装单选钮组件的容器
private RadioButton lam = null;//定义单选钮组件
private RadioButton Fer = null;//定义单选钮组件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
this.text = (TextView)super.findViewById(R.id.show);//通过id找到文本组件。
this.car = (RadioGroup)super.findViewById(R.id.superCar);//通过id找到盛装单选钮组件的容器。
this.lam = (RadioButton)super.findViewById(R.id.RB1);//通过id找到单选钮组件。
this.Fer = (RadioButton)super.findViewById(R.id.RB2);
this.car.setOnCheckedChangeListener(new OnCheckChangeListener());//给盛装单选钮组件的容器设置监听器。
}
private class OnCheckChangeListener implements android.widget.RadioGroup.OnCheckedChangeListener {
String s = null;
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
if (MainActivity.this.lam.getId() == checkedId) {//如果lam所表示的单选钮被选中。
s = MainActivity.this.lam.getText().toString();
MainActivity.this.text.setText("您选择的车 :" + s);//设置显示的文字。
} else if (MainActivity.this.Fer.getId() == checkedId) {//如果Fer所表示的单选钮被选中。
s = MainActivity.this.Fer.getText().toString();
MainActivity.this.text.setText("您选择的车 :" + s);//设置显示的文字。
}
}
}
}


3、下拉列表框(OnItemSelectedListener)

代码:(在下拉列表框中选择待选项程序会做出反应)

main.xml文件内容。


<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/showText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="45px"
android:textColor="#2828FF"
android:text="@string/hello_world" />
<Spinner //设置下拉列表框组件
android:id="@+id/car"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:prompt="@string/hello_world"

更多相关文章

  1. Android之设置ListView数据显示的动画效果
  2. Android中density如何设置
  3. Android(安卓)强制设置横屏或竖屏 设置全屏
  4. Android(安卓)重力感应
  5. Android之使用RatingBar设置游戏难度并保存
  6. android源码解析--switch
  7. Android中使用WebView, WebChromeClient和WebViewClient加载网页
  8. android中分割线的实现
  9. Android监听软键盘的方式

随机推荐

  1. canvas 画一个圆上有 旋转角度 的直线
  2. android button 上添加图片
  3. Android(安卓)修改默认的ProgressBar的动
  4. Android(安卓)API demos 阅读笔记 1
  5. Layout属性介绍
  6. Android(安卓)maxLine属性导致android:im
  7. Mac与Android文件传输工具 Android(安卓)
  8. 【Android】SDK手动下载
  9. android之wifi体系架构源码流程分析
  10. 在android中实现动态跑动的图表实现方法