当前位置: 代码迷 >> Android >> android-LinearLayout,listener的计算器小范例
  详细解决方案

android-LinearLayout,listener的计算器小范例

热度:137   发布时间:2016-05-01 14:43:01.0
android---LinearLayout,listener的计算器小实例

用嵌套的LinearLayout,和OnClickListener做了个计算器的小实例

源码下载:http://download.csdn.net/detail/lc448986375/4574515

布局代码:activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <TextView        android:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:padding="@dimen/padding_medium"        android:text="简易计算器"        tools:context=".MainActivity" />        <LinearLayout         android:orientation="horizontal"        android:layout_width="wrap_content"    	android:layout_height="wrap_content" >        >        <EditText             android:id="@+id/num1"            android:width="80dp"            android:layout_width="wrap_content"        	android:layout_height="wrap_content"        	            />                <TextView        android:id="@+id/text1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:padding="@dimen/padding_medium"        android:text="    "        tools:context=".MainActivity" />                 <EditText             android:id="@+id/num2"            android:width="80dp"            android:layout_width="wrap_content"        	android:layout_height="wrap_content"            />                <Button             android:id="@+id/denghao"            android:layout_width="wrap_content"        	android:layout_height="wrap_content"        	android:text=" = "            />                <EditText             android:id="@+id/num3"            android:width="80dp"            android:layout_width="wrap_content"        	android:layout_height="wrap_content"            />            </LinearLayout>        <LinearLayout         android:orientation="horizontal"        android:layout_width="wrap_content"    	android:layout_height="wrap_content"         >                <Button             android:id="@+id/jia"            android:width="80dp"            android:layout_width="wrap_content"        	android:layout_height="wrap_content"        	android:text=" + "            />                <Button             android:id="@+id/jian"            android:width="80dp"            android:layout_width="wrap_content"        	android:layout_height="wrap_content"        	android:text=" - "            />                <Button             android:id="@+id/cheng"            android:width="80dp"            android:layout_width="wrap_content"        	android:layout_height="wrap_content"        	android:text=" * "            />                <Button             android:id="@+id/chu"            android:width="80dp"            android:layout_width="wrap_content"        	android:layout_height="wrap_content"        	android:text=" / "            />            </LinearLayout>     </LinearLayout>

MainActivity.java代码:

package com.activity;import com.dao.Calculate;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity {	//第一组件	//第一个数字,第二个数字,第三个数字	private EditText num1Text,num2Text,num3Text;	//显示符号的控件	private TextView text;	//加减乘除四个按钮	private Button jia,jian,cheng,chu;	private Calculate calculate = new Calculate();	private double num1,num2,num3;		//查找到组件	private void findViews(){		num1Text = (EditText) findViewById(R.id.num1);		num2Text = (EditText) findViewById(R.id.num2);		num3Text = (EditText) findViewById(R.id.num3);		text= (TextView) findViewById(R.id.text1);				jia = (Button) findViewById(R.id.jia);		jian = (Button) findViewById(R.id.jian);		cheng = (Button) findViewById(R.id.cheng);		chu = (Button) findViewById(R.id.chu);	}		//添加监听	private void setListeners(){		jia.setOnClickListener(new OnClickListener() {			public void onClick(View v) {				text.setText("+");				num1 = Double.parseDouble(num1Text.getText().toString());				num2 = Double.parseDouble(num2Text.getText().toString());				num3 = calculate.add(num1, num2);				num3Text.setText(Double.toString(num3));			}		});				jian.setOnClickListener(			new OnClickListener() {				public void onClick(View v) {					text.setText("-");					num1 = Double.parseDouble(num1Text.getText().toString());					num2 = Double.parseDouble(num2Text.getText().toString());					num3 = calculate.sub(num1, num2);					num3Text.setText(Double.toString(num3));				}			}		);				 cheng.setOnClickListener(				new OnClickListener() {					public void onClick(View v) {						text.setText("*");						num1 = Double.parseDouble(num1Text.getText().toString());						num2 = Double.parseDouble(num2Text.getText().toString());						num3 = calculate.mul(num1, num2);						num3Text.setText(Double.toString(num3));					}				}		);				chu.setOnClickListener(				new OnClickListener() {					public void onClick(View v) {						text.setText("/");						num1 = Double.parseDouble(num1Text.getText().toString());						num2 = Double.parseDouble(num2Text.getText().toString());						num3 = calculate.chu(num1, num2);						num3Text.setText(Double.toString(num3));					}				}		);			}    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        this.findViews();        this.setListeners();    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.activity_main, menu);        return true;    }    }

分了一下层,下面是dao层的代码

Calculate.java

package com.dao;public class Calculate {	//加	public double add(double num1,double num2){		return num1 + num2;	}	//减	public double sub(double num1,double num2){		return num1 - num2;	}	//乘	public double mul(double num1,double num2){		return num1 * num2;	}	//除	public double chu(double num1,double num2){		return num1 / num2;	}}


下面是效果图




时间关系,写的不太好,仅供参考
  相关解决方案