您的位置:首页 > 移动开发 > Android开发

Android EditText小实验

2014-04-01 00:30 260 查看
第一次在CSDN上面写博客,不知道写些什么东西,就将最近两天做的一个小实验记录下来。

这个小实验源自最近做的一个购物APP的一部分,当我们输入或者点击“+”或“-”选择好购买商品的数量,系统会自动计算出所需的费用,如图所示:



下面是demo的代码:

package com.lishangjie.edittexttet;

import java.text.DecimalFormat;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

private EditText input;
private TextView result, price;
private ImageView add, delete;
private double pri;
private DecimalFormat df;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
input = (EditText) findViewById(R.id.input);
result = (TextView) findViewById(R.id.result);
add = (ImageView) findViewById(R.id.add);
delete = (ImageView) findViewById(R.id.delete);
price = (TextView) findViewById(R.id.price);
pri = Double.valueOf(price.getText().toString());
df = new DecimalFormat("#.00");

add.setOnClickListener(this);
delete.setOnClickListener(this);

input.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
if (s.toString() == null || s.toString().equals("")) {
s = "0";
}
int a = Integer.parseInt(s.toString());
double c = a * pri;
result.setText(String.valueOf(df.format(c)));
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub

}
});
}

@Override
public void onClick(View view) {
// TODO Auto-generated method stub
switch (view.getId()) {
case R.id.add:
String addnumString = input.getText().toString();
System.out.println("addnumString===" + addnumString);
if (addnumString == null || addnumString.equals("")) {
addnumString = "0";
}
int addnumInt = Integer.parseInt(addnumString) + 1;
input.setText(String.valueOf(addnumInt));
result.setText(String.valueOf(df.format(addnumInt * pri)));
break;

case R.id.delete:
String delnumString = input.getText().toString();
System.out.println("delnumString==" + delnumString);
if (delnumString == null || delnumString.equals("")) {
delnumString = "0";
}
int delnumInt = Integer.parseInt(delnumString) - 1;
if (delnumInt >= 0) {
input.setText(String.valueOf(delnumInt));
result.setText(String.valueOf(df.format(delnumInt * pri)));
}
break;

default:
break;
}
}

}


布局文件的代码:

<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="horizontal" >

<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<TextView
android:layout_width="50dp"
android:layout_height="30dp"
android:layout_gravity="center"
android:text="单价" />

<TextView
android:layout_width="200dp"
android:layout_height="30dp"
android:layout_gravity="center"
android:text="数量" />

<TextView
android:layout_width="50dp"
android:layout_height="30dp"
android:layout_gravity="center"
android:text="结果" />
</TableRow>

<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="40dp" >

<TextView
android:id="@+id/price"
android:layout_width="50dp"
android:layout_height="30dp"
android:layout_gravity="center"
android:text="9.28"
android:textSize="19sp" />
<LinearLayout
android:layout_width="200dp"
android:layout_height="30dp"
android:layout_gravity="center"
>

<ImageView
android:id="@+id/add"
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/add" />

<EditText
android:id="@+id/input"
android:layout_width="60dp"
android:layout_height="30dp"
android:hint="0"
android:maxLength="5"
android:padding="4dp"
android:gravity="center_horizontal|center_vertical"
android:numeric="integer" />

<ImageView
android:id="@+id/delete"
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/minus" />
</LinearLayout>

<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_gravity="center"
android:text="0.00"
android:textSize="19sp"/>
</TableRow>
</TableLayout>

</LinearLayout>


源码:

android edittext小实验
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: