Android开发01——控件的使用,四则运算

Android开发01——控件的使用,四则运算
学习内容:
OnClickListener事件的使用
常用控件的使用

实现效果:




ClickDemoSiZeYunSuanActivity.java代码(main.xml配置文件代码略):

注:
1.编程学习不看代码是不好的。
2.代码忽略各种exceptio
n。

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了   ”


自动实现接口的所有方法:也很简单,先写出接口,在左边的“×”出三击即可。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值