一.Button、TextView、EditText、RadioButton、RadioGroup、CheckBox综合使用:
布局文件:
activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#c0c0c0"
android:text="@string/hello_world"
android:textColor="#d2691e"
android:layout_gravity="center"
android:textSize="30sp"
/>
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/name"
android:background="#ffe4c4"
/>
<RadioGroup
android:id="@+id/RadioGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<RadioButton
android:id="@+id/sun"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sun" />
<RadioButton
android:id="@+id/moon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/moon" />
<RadioButton
android:id="@+id/stars"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/stars" />
</RadioGroup>
<CheckBox
android:id="@+id/day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/day" />
<CheckBox
android:id="@+id/theearth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/theearth" />
<CheckBox
android:id="@+id/sea"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sea" />
<Button
android:id="@+id/submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/submit"
/>
</LinearLayout>
strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">HelloWorld</string>
<string name="action_settings">Settings</string>
<string name="hello_world">词语拼接</string>
<string name="submit">提交</string>
<string name="name">名字</string>
<string name="stars">星星</string>
<string name="moon">月亮</string>
<string name="sun">太阳</string>
<string name="day">天</string>
<string name="theearth">地</string>
<string name="sea">海</string>
</resources>
MainActivity.java:
package com.example.helloworld;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MainActivity extends Activity {
//用来输入姓名
private EditText name;
//创建RadioGroup对象
private RadioGroup rg;
//创建三个RadioButton对象
private RadioButton sun,moon,stars;
//创建三个CheckBox对象
private CheckBox day,theearth,sea;
//创建提交按钮
private Button submit;
//用于显示的文本
String text="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//findViewById()方法获得布局文件中的控件,通过Id获取。
name =(EditText)findViewById(R.id.name);
rg = (RadioGroup)findViewById(R.id.RadioGroup);
sun = (RadioButton)findViewById(R.id.sun);
moon = (RadioButton)findViewById(R.id.moon);
stars = (RadioButton)findViewById(R.id.stars);
day = (CheckBox)findViewById(R.id.day);
theearth = (CheckBox)findViewById(R.id.theearth);
sea = (CheckBox)findViewById(R.id.sea);
submit = (Button)findViewById(R.id.submit);
//为单项选择添加事件。
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(checkedId == sun.getId()){
text +=sun.getText().toString();
}else if(checkedId == moon.getId()){
text +=moon.getText().toString();
}else{
text +=stars.getText().toString();
}
}
});
//多项选择的事件只写一个。那两个可以根据自己的需求来填写。
day.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(day.isChecked()){
displayToast("你喜欢"+day.getText());
}
}
});
//添加按钮点击事件,用吐司来显示选中内容。
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str="喜欢";
if(day.isChecked()){
str += day.getText()+"、";
}
if(theearth.isChecked()){
str += theearth.getText()+"、";
}
if(sea.isChecked()){
str += sea.getText()+"、";
}
displayToast(name.getText().toString()+str+text);
}
});
}
//吐司,信息提示。
public void displayToast(String text){
Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
}
}
运行图片:
当选中天多项选择时,则会触发事件弹出吐司信息。
当输入名字和单项选择之后点击提交按钮,就会触发事件,提示你选中的信息。
二.单击事件:
单击事件有三种常用处理方式:
1).匿名内部类作为事件监听:
实现:
按钮:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/click"
android:text="单击"
/>
代码:
Button button;
button = (Button)findViewById(R.id.click);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
displayToast("点击按钮");
}
});
运行图片:
2).内部类作为监听器:
按钮:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/click"
android:text="单击"
/>
代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button;
button = (Button)findViewById(R.id.click);
button.setOnClickListener(new ButtonOnClick());
}
private final class ButtonOnClick implements OnClickListener{
@Override
public void onClick(View v) {
displayToast("点击按钮");
}
}
public void displayToast(String text){
Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
运行图片:
3).在控件中指定监听方法:
android:onClick="指定方法名字"
按钮:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/click"
android:text="单击"
android:onClick="onClick"
/>
代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button;
button = (Button)findViewById(R.id.click);
}
//必须按这样的格式,方法名和参数名可以修改其他不能改动。
public void onClick(View v){
displayToast("我已经点击了按钮");
}
public void displayToast(String text){
Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
运行图片
还有其他事件监听方式,想了解的大家可以去查。