版权声明:沉迷代码,难以自拔 https://blog.csdn.net/qq_33846054/article/details/54143439
初学安卓,次次卡在button的事件监听处。这次要一鼓作气,把这个处理点击事件的机制看得赤裸裸!
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btndo=(Button)findViewById(R.id.button1);
txtShow=(TextView)findViewById(R.id.textView1);
btndo.setOnClickListener(btndoListener);
}
private Button.OnClickListener btndoListener=new
Button.OnClickListener(){
public void onClick (View v){
txtShow.setText("你按到我了!");
}
};
匿名内部类:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btndo=(Button)findViewById(R.id.button1);
txtShow=(TextView)findViewById(R.id.textView1);
btndo.setOnClickListener(new OnClickListener(){
public void onClick (View v){
txtShow.setText("你按到我了!");
}
});
}
英里转换器
private Button btndo;
private TextView txtShow;
private EditText editdo;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btndo=(Button)findViewById(R.id.button1);
txtShow=(TextView)findViewById(R.id.textView2);
editdo=(EditText)findViewById(R.id.editView1);
btndo.setOnClickListener(new OnClickListener(){
public void onClick (View v){
int miles=Integer.parseInt(editdo.getText().toString());
double km =1.61*(double)miles;
txtShow.setText("时速"+km+"公里");
}
});
}
多按钮共享事件 switch的应用
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt1=(Button)findViewById(R.id.button1);
bt2=(Button)findViewById(R.id.button2);
bt3=(Button)findViewById(R.id.button3);
text1=(TextView)findViewById(R.id.textView1);
bt1.setOnClickListener(myListener);
bt2.setOnClickListener(myListener);
bt3.setOnClickListener(myListener);
}
private Button.OnClickListener myListener=new
Button.OnClickListener(){
public void onClick(View v){
String s=text1.getText().toString();
switch(v.getId()){
case R.id.button1:
text1.setText(s+"0");
break;
case R.id.button2:
{text1.setText(s+"1");
break;
}
case R.id.button3:
{text1.setText(s+"2");
break;
}
}
}
};
tablelayout
public class MainActivity extends Activity {
private EditText edit1;
private Button b1,b2,b3,b4,b5,b6;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1=(EditText)findViewById(R.id.editText1);
b1=(Button)findViewById(R.id.button1);
b2=(Button)findViewById(R.id.button2);
b3=(Button)findViewById(R.id.button3);
b4=(Button)findViewById(R.id.button4);
b5=(Button)findViewById(R.id.button5);
b6=(Button)findViewById(R.id.button6);
b1.setOnClickListener(listener);
b2.setOnClickListener(listener);
b3.setOnClickListener(listener);
b4.setOnClickListener(listener);
b5.setOnClickListener(listener);
b6.setOnClickListener(listener);
}
private Button.OnClickListener listener =new
Button.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
displayATM("1");
break;
case R.id.button2:
displayATM("2");
break;
case R.id.button3:
displayATM("3");
break;
case R.id.button4:
displayATM("4");
break;
case R.id.button5:
displayATM("5");
break;
case R.id.button6:
displayATM("6");
break;
default:
break;
}
}
};
private void displayATM(String s){
String str=edit1.getText().toString();
edit1.setText(str+s);
}
4.2toast 弹出消息
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1=(EditText)findViewById(R.id.editText1);
b1=(Button)findViewById(R.id.button1);
b2=(Button)findViewById(R.id.button2);
b3=(Button)findViewById(R.id.button3);
b4=(Button)findViewById(R.id.button4);
b5=(Button)findViewById(R.id.button5);
b6=(Button)findViewById(R.id.button6);
b7=(Button)findViewById(R.id.button7);
b8=(Button)findViewById(R.id.button8);
b1.setOnClickListener(listener);
b2.setOnClickListener(listener);
b3.setOnClickListener(listener);
b4.setOnClickListener(listener);
b5.setOnClickListener(listener);
b6.setOnClickListener(listener);
b7.setOnClickListener(listener);
b8.setOnClickListener(listener);
}
private Button.OnClickListener listener =new
Button.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
displayATM("1");
break;
case R.id.button2:
displayATM("2");
break;
case R.id.button3:
displayATM("3");
break;
case R.id.button4:
displayATM("4");
break;
case R.id.button5:
displayATM("5");
break;
case R.id.button6:
displayATM("6");
break;
case R.id.button7:{
String str=edit1.getText().toString();
if (str.length()>0){
str=str.substring(0,str.length()-1);
edit1.setText(str);
}
}
case R.id.button8:{
String str=edit1.getText().toString();
if (str.equals("667788")){
Toast toast =Toast.makeText(MainActivity.this, "密码正确,欢迎使用提款功能", Toast.LENGTH_LONG);
toast.show();
}
else{
Toast toast =Toast.makeText(MainActivity.this, "密码错误,请重新输入", Toast.LENGTH_LONG);
toast.show();
}
}
default:
break;
}
}
};
private void displayATM(String s){
String str=edit1.getText().toString();
edit1.setText(str+s);
}
2)消息提示中央呈现
case R.id.button8:{
String str=edit1.getText().toString();
if (str.equals("123456")){
Toast toast =Toast.makeText(MainActivity.this, "密码正确,欢迎使用提款功能", Toast.LENGTH_LONG);
toast.show();
toast.setGravity(Gravity.CENTER, 0, 0);
}
else{
Toast toast =Toast.makeText(MainActivity.this, "密码错误,请重新输入", Toast.LENGTH_LONG);
toast.show();
toast.setGravity(Gravity.CENTER, 0, 0);
}
}
4.3 alertdialog对话框
case R.id.button9:{
new AlertDialog.Builder(MainActivity.this)
.setTitle("确认窗口")
.setIcon(R.drawable.ic_launcher)
.setMessage("确定要结束程序?")
.show();
}
2)加入交互按钮
case R.id.button9:{
new AlertDialog.Builder(MainActivity.this)
.setTitle("确认窗口")
.setIcon(R.drawable.ic_launcher)
.setMessage("确定要结束程序?")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
})
.show();
break;
}
一道练习题
package com.twomeng.meng;
import android.R.raw;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.location.GpsStatus.Listener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private Button b1,b2,b3,b4;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button)findViewById(R.id.button1);
b2=(Button)findViewById(R.id.button2);
b3=(Button)findViewById(R.id.button3);
b4=(Button)findViewById(R.id.button4);
b1.setOnClickListener(Listener);
b2.setOnClickListener(Listener);
b3.setOnClickListener(Listener);
b4.setOnClickListener(Listener);
}
private Button.OnClickListener Listener=
new OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
new AlertDialog.Builder(MainActivity.this)
.setTitle("确认窗口")
.setIcon(R.drawable.ic_launcher)
.setMessage("你按了button1,按确定关闭对话框")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.show();
break;
case R.id.button2:new AlertDialog.Builder(MainActivity.this)
.setTitle("确认窗口")
.setIcon(R.drawable.ic_launcher)
.setMessage("你按了button2,按确定关闭对话框")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.show();
break;
case R.id.button3:
new AlertDialog.Builder(MainActivity.this)
.setTitle("确认窗口")
.setIcon(R.drawable.ic_launcher)
.setMessage("你按了button3,按确定关闭对话框")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.show();
break;
case R.id.button4:
new AlertDialog.Builder(MainActivity.this)
.setTitle("确认窗口")
.setIcon(R.drawable.ic_launcher)
.setMessage("你按了button4,按确定关闭对话框")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.show();
break;
}
}
};
@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;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
第五章 单选、复选和下拉列表
private TextView text1;
private CheckBox check1,check2,check3;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1=(TextView)findViewById(R.id.textView1);
check1=(CheckBox)findViewById(R.id.check1);
check2=(CheckBox)findViewById(R.id.check2);
check3=(CheckBox)findViewById(R.id.check3);
check1.setOnCheckedChangeListener(listener);
check2.setOnCheckedChangeListener(listener);
check3.setOnCheckedChangeListener(listener);
}
private CheckBox.OnCheckedChangeListener listener =
new CheckBox.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int n=0;
String s="";
String s1="",s2="",s3="";
if (check1.isChecked()){
n++;
s1=check1.getText().toString()+" ";
}
else{
s1="";
}
if (check2.isChecked()){
n++;
s2=check2.getText().toString()+" ";
}
else{
s2="";
}
if (check3.isChecked()){
n++;
s3=check3.getText().toString()+" ";
}
else{
s3="";
}
s=s1+s2+s3;
text1.setText("最喜欢的球类有:"+s+"共"+n+"项");
}
};
2)水平的复选框
<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:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="我最喜欢的球类运动"
android:textSize="20sp" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<CheckBox
android:id="@+id/check1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="篮球"
android:textSize="20sp" />
<CheckBox
android:id="@+id/check2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="足球"
android:textSize="20sp" />
<CheckBox
android:id="@+id/check3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="棒球"
android:textSize="20sp" />
</LinearLayout>
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="显示消息"
android:textSize="20sp" />
</LinearLayout>
5.2 radiobutton radiogroup单选列表
private TextView text1;
private RadioGroup group;
private RadioButton button1,button2,button3;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1=(TextView)findViewById(R.id.textView1);
group=(RadioGroup)findViewById(R.id.radioGroup1);
button1=(RadioButton)findViewById(R.id.radio0);
button2=(RadioButton)findViewById(R.id.radio1);
button3=(RadioButton)findViewById(R.id.radio2);
group.setOnCheckedChangeListener(listener);
}
private RadioGroup.OnCheckedChangeListener listener=
new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group, int checkedId) {
int p=group.indexOfChild((RadioButton)findViewById(checkedId));
int count=group.getChildCount();
if(checkedId==R.id.radio0)
text1.setText(count+"项球类中,最喜欢第"+(p+1)+"项 "+button1.getText());
if(checkedId==R.id.radio1)
text1.setText(count+"项球类中,最喜欢第"+(p+1)+"项 "+button2.getText());
if(checkedId==R.id.radio2)
text1.setText(count+"项球类中,最喜欢第"+(p+1)+"项 "+button3.getText());
}
};
2)水平单选框
<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:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="我最喜欢的球类运动"
android:textSize="20sp" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioGroup android:orientation="horizontal"
android:id="@+id/radioGroup1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/radio0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="篮球" />
<RadioButton
android:id="@+id/radio1"
android:text="足球"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<RadioButton
android:id="@+id/radio2"
android:text="棒球"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</RadioGroup>
</LinearLayout>
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="显示消息"
android:textSize="20sp" />
</LinearLayout>
5.3 spinner 下拉式列表
package com.twomeng.meng;
import org.apache.http.conn.BasicEofSensorWatcher;
import android.R.raw;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.location.GpsStatus.Listener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView text1;
private Spinner spinner;
String[] Balls=new String[]{"篮球","足球","棒球","其他"};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1=(TextView)findViewById(R.id.textView1);
spinner=(Spinner)findViewById(R.id.spinner1);
spinner=(Spinner)findViewById(R.id.spinner1);
ArrayAdapter<String> adapterballs=new ArrayAdapter<String>
(this, android.R.layout.simple_spinner_item,Balls);
adapterballs.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapterballs);
spinner.setOnItemSelectedListener(listener);
}
private Spinner.OnItemSelectedListener listener =
new Spinner.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent,View v,int position,long id ){
String string=parent.getSelectedItem().toString();
text1.setText(string);
}
public void onNothingSelected(AdapterView<?> parent ){
}
};
}
练习
package com.twomeng.meng;
import org.apache.http.conn.BasicEofSensorWatcher;
import android.R.raw;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.location.GpsStatus.Listener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
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.Spinner;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView textView;
private CheckBox check1,check2,check3;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=(TextView)findViewById(R.id.textView2);
check1=(CheckBox)findViewById(R.id.checkBox1);
check2=(CheckBox)findViewById(R.id.checkBox2);
check3=(CheckBox)findViewById(R.id.checkBox3);
check1.setOnCheckedChangeListener(listener);
check2.setOnCheckedChangeListener(listener);
check3.setOnCheckedChangeListener(listener);
}
private CheckBox.OnCheckedChangeListener listener=
new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int n=0;
String string;
String s1,s2,s3;
if (check1.isChecked()){
n++;
s1=check1.getText().toString();
}
else
s1=" ";
if (check2.isChecked()){
n++;
s2=check2.getText().toString();
}
else
s2=" ";
if (check3.isChecked()){
n++;
s3=check3.getText().toString();
}
else
s3=" ";
string=s1+s2+s3;
textView.setText("最喜欢的程序语言有:"+string+"共"+n+"种");
}
};
}
package com.twomeng.meng;
import org.apache.http.conn.BasicEofSensorWatcher;
import android.R.raw;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.location.GpsStatus.Listener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
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.Spinner;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView textView;
private RadioGroup group;
private RadioButton b1,b2,b3,b4;
private EditText editText;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=(TextView)findViewById(R.id.textView2);
editText=(EditText)findViewById(R.id.editText1);
b1=(RadioButton)findViewById(R.id.radio0);
b2=(RadioButton)findViewById(R.id.radio1);
b3=(RadioButton)findViewById(R.id.radio2);
b4=(RadioButton)findViewById(R.id.radio3);
group=(RadioGroup)findViewById(R.id.radioGroup1);
group.setOnCheckedChangeListener(listener);
}
private RadioGroup.OnCheckedChangeListener listener=
new RadioGroup.OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId==R.id.radio0){
String string=editText.getText().toString();
textView.setText(string+" 你的血型为 "+b1.getText());
}
if (checkedId==R.id.radio1){
String string=editText.getText().toString();
textView.setText(string+" 你的血型为 "+b2.getText());
}
if (checkedId==R.id.radio2){
String string=editText.getText().toString();
textView.setText(string+" 你的血型为 "+b3.getText());
}
if (checkedId==R.id.radio3){
String string=editText.getText().toString();
textView.setText(string+" 你的血型为 "+b4.getText());
}
}
};
}
第六章 图片组件
重点内容