Android開發01——控制元件的使用,四則運算

GeekWay發表於2012-02-11

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


自動實現介面的所有方法:也很簡單,先寫出介面,在左邊的“×”出三擊即可。



相關文章