android:id='@+id/button3'
android:layout_width='wrap_content'
android:layout_height='wrap_content'
android:textSize='25sp'
android:layout_x='158px'
android:layout_y='161px'
android:text='@string/but_str3' />
android:id='@+id/button4'
android:layout_width='wrap_content'
android:layout_height='wrap_content'
android:textSize='25sp'
android:layout_x='239px'
android:layout_y='161px'
android:text='@string/but_str4' />
这里样式还有一点问题
按钮显示的内容通过String.xml 获取。也可直接在main.xml中修改android:text='+'指定如上指定显示“+”.
Activity 对象
package com.app.android;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MyFirstActivity extends Activity {
/** Called when the activity is first created. */
private Button button1;
private TextView textView1;
private TextView textView2;
private Button button2;
private Button button3;
private Button button4;
private EditText editText1;
private EditText editText2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1=(Button)findViewById(R.id.button1);
button2=(Button)findViewById(R.id.button2);
button3=(Button)findViewById(R.id.button3);
button4=(Button)findViewById(R.id.button4);
editText1=(EditText)findViewById(R.id.EditText1);
editText2=(EditText)findViewById(R.id.EditText2);
textView1=(TextView)findViewById(R.id.MyTextView1);
textView2=(TextView)findViewById(R.id.MyTextView2);
button1.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
// TODO Auto-generated method stub
if(confirm(editText1,editText2)){
textView1.setText('+');
String strRet=format(Float.parseFloat(editText1.getText().toString())+Float.parseFloat(editText2.getText().toString()));
textView2.setText(strRet);
}
}
});
button2.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
// TODO Auto-generated method stub
if(confirm(editText1,editText2)){
textView1.setText('-');
String strRet=format(Float.parseFloat(editText1.getText().toString())-Float.parseFloat(editText2.getText().toString()));
textView2.setText(strRet);
}
}
});
button3.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
// TODO Auto-generated method stub
if(confirm(editText1,editText2)){
textView1.setText('*');
String strRet=format(Float.parseFloat(editText1.getText().toString())*Float.parseFloat(editText2.getText().toString()));
textView2.setText(strRet);
}}
});
button4.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
// TODO Auto-generated method stub
if(confirm(editText1,editText2)){;
textView1.setText('/');
String strRet=format(Float.parseFloat(editText1.getText().toString())/Float.parseFloat(editText2.getText().toString()));
textView2.setText(strRet);
}}
});
}
/**
* 格式化结果
* @param num
* @return
*/
private String format(float num){
NumberFormat formater=new DecimalFormat('0.00');
String s=formater.format(num);
return s;
}
/**
* 确认运算项是否完整
* @param text1
* @param text2
* @return
*/
private boolean confirm(EditText text1,EditText text2){
String editText1=text1.getText().toString();
String editText2=text2.getText().toString();
//System.out.println(editText1+','+editText2);
if((editText1!=null&&editText1.equals(''))||(editText2!=null&&editText2.equals(''))){
new AlertDialog.Builder(MyFirstActivity.this).setTitle(R.string.title).setMessage(R.string.msg).setPositiveButton(
R.string.ok,new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialoginterface,int i){
dialoginterface.dismiss();
}
}
).show();
return false;
}
else{return true;}
}
}
方法都已经注释了
第一次发帖,不太会表达,请见谅。