Android开发01——控件的使用,四则运算
学习内容:OnClickListener事件的使用
常用控件的使用
实现效果:
ClickDemoSiZeYunSuanActivity.java代码(main.xml配置文件代码略):
注:
1.编程学习不看代码是不好的。
2.代码忽略各种exception。
package wml.android.ClickDemoSiZeYunSuan;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.view.View.OnClickListener;
public class ClickDemoSiZeYunSuanActivity extends Activity {
/** Called when the activity is first created. */
private TextView showView=null; //用于显示结果
private TextView note=null; //显示各种符号
private EditText editNum1=null;
private EditText editNum2=null;
//四中运算符按钮
private Button butAdd=null;
private Button butSub=null;
private Button butMul=null;
private Button butDiv=null;
private float num1=0; //保存输入的第一个信息
private float num2=0; //保存输入的第二个信息
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
this.showView=(TextView)super.findViewById(R.id.mytext);//用于显示“计算结果”
this.editNum1=(EditText)super.findViewById(R.id.myeda); //取得第一个输入内容
this.editNum2=(EditText)super.findViewById(R.id.myedb); //取得第二个输入内容
this.butAdd=(Button)super.findViewById(R.id.mybutadd); //加
this.butSub=(Button)super.findViewById(R.id.mybutsub); //减
this.butMul=(Button)super.findViewById(R.id.mybutmul); //乘
this.butDiv=(Button)super.findViewById(R.id.mybutdiv); //除
this.note=(TextView)super.findViewById(R.id.note); //中间显示的信息提示
//添加监听器
this.butAdd.setOnClickListener(new AddListener());
this.butSub.setOnClickListener(new SubListener());
this.butMul.setOnClickListener(new MulListener());
this.butDiv.setOnClickListener(new DivListener());
}
private class AddListener implements OnClickListener{
public void onClick(View v){
num1=Integer.parseInt(editNum1.getText().toString());
num2=Integer.parseInt(editNum2.getText().toString());
note.setText(" + ");
showView.setText(String.valueOf(num1+num2));
}
}
private class SubListener implements OnClickListener{
public void onClick(View v){
num1=Integer.parseInt(editNum1.getText().toString());
num2=Integer.parseInt(editNum2.getText().toString());
note.setText(" - ");
showView.setText(String.valueOf(num1-num2));
}
}
private class MulListener implements OnClickListener{
public void onClick(View v){
num1=Integer.parseInt(editNum1.getText().toString());
num2=Integer.parseInt(editNum2.getText().toString());
note.setText(" * ");
showView.setText(String.valueOf(num1*num2));
}
}
private class DivListener implements OnClickListener{
public void onClick(View v){
num1=Integer.parseInt(editNum1.getText().toString());
num2=Integer.parseInt(editNum2.getText().toString());
note.setText("÷ ");
showView.setText(String.valueOf(num1/num2));
}
}
}
P.S.:
Eclipse导入包的快捷键:
shift+ctrl+o导入所有没导入的包
shift+ctrl+m导入你鼠标当前所在的地方的未导入的包
系统默认的Content Assist(自动补全)的快捷键是:alt+/,
注:自动导入包时会有失误,如:
import android.view.View.OnClickListener;会误导入import android.content.DialogInterface.OnClickListener; 所以会出错。
优化代码,变为内部类:
将:
this.but.setOnClickListener(new ShowListener();
……
private class ShowListener implements OnClickListener{
public void onClick(View v){
String info=ClickProjectActivity.this.edit.getText().toString();
ClickProjectActivity.this.showView.setText("输入的内容是:"+info);
}
}
变为:this.but.setOnClickListener(new ShowListener(){
public void onClick(View v){
String info=ClickProjectActivity.this.edit.getText().toString();
ClickProjectActivity.this.showView.setText("输入的内容是:"+info);
}
})
设置EditText的大小:很简单,直接layout_width="80px"就行了。。
一种崩溃的解决方案:
运行程序时提出了这个一个警告:Activity not started, its current task has been brought to the front ...
“这应该是你的模拟器中还有东西在运行,也就是你要运行的activity已经有一个在模拟器中运行了。
不要以为你的模拟器退出到桌面了就没有东西在跑了。在你调试的时候异常关闭的程序有可能就有activity在运行。
解决方法project->clean。 应该就OK了 ”
自动实现接口的所有方法:也很简单,先写出接口,在左边的“×”出三击即可。