代码地址:http://download.csdn.net/detail/nuptboyzhb/4478048
实现的最终界面:
开发中遇到的问题:ImageView的xml文件,出现src路径找不到的问题
<ImageViewandroid:id="@+id/photo1"
android:contentDescription="@string/app_name"
android:src="@drawable/zhb"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
上面的正确的代码,出问题时,android:src="@drawable-hdpi/zhb",此时,虽然drawable-hdpi文件夹下面有zhb.jpg图片,编辑器仍然报错,说找不到该资源。后来,我新建了一个drawable文件夹,将zhb.jpg剪切于此,就没有报错了!
代码:
- package com.njupt.zhb.calculator;
- import android.os.Bundle;
- import android.R.bool;
- import android.R.integer;
- import android.app.Activity;
- import android.content.Intent;
- import android.view.Menu;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- import java.lang.*;
- import android.view.View.OnClickListener;
- public class MainActivity extends Activity {
- Button btn_num1;
- Button btn_num2;
- Button btn_num3;
- Button btn_num4;
- Button btn_num5;
- Button btn_num6;
- Button btn_num7;
- Button btn_num8;
- Button btn_num9;
- Button btn_num0;
- Button btnEqu;
- Button btnAdd;
- Button btnSub;
- Button btnMul;
- Button btnDiv;
- Button btnPoint;
- Button btnAbout;
- OnClickListener listener0=null;
- OnClickListener listener1=null;
- OnClickListener listener2=null;
- OnClickListener listener3=null;
- OnClickListener listener4=null;
- OnClickListener listener5=null;
- OnClickListener listener6=null;
- OnClickListener listener7=null;
- OnClickListener listener8=null;
- OnClickListener listener9=null;
- OnClickListener listenerEqu=null;
- OnClickListener listenerAdd=null;
- OnClickListener listenerSub=null;
- OnClickListener listenerMul=null;
- OnClickListener listenerDiv=null;
- OnClickListener listenerPoint=null;
- OnClickListener listenerAbout=null;
- CharSequence input_text=null;
- EditText displayText;
- TextView textview1;
- double num1=0;
- double num2=0;
- double result=0;
- int CalType=0;
- boolean EquBtnDownFlag=false;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- setTitle("计算器");
- displayText=(EditText)findViewById(R.id.EditText1);
- displayText.setText(null);
- textview1=(TextView)findViewById(R.id.TextView1);
- btn_num0=(Button)findViewById(R.id.BtnNum0);
- btn_num1=(Button)findViewById(R.id.BtnNum1);
- btn_num2=(Button)findViewById(R.id.BtnNum2);
- btn_num3=(Button)findViewById(R.id.BtnNum3);
- btn_num4=(Button)findViewById(R.id.BtnNum4);
- btn_num5=(Button)findViewById(R.id.BtnNum5);
- btn_num6=(Button)findViewById(R.id.BtnNum6);
- btn_num7=(Button)findViewById(R.id.BtnNum7);
- btn_num8=(Button)findViewById(R.id.BtnNum8);
- btn_num9=(Button)findViewById(R.id.BtnNum9);
- btnAdd=(Button)findViewById(R.id.BtnAdd);
- btnSub=(Button)findViewById(R.id.BtnSubtract);
- btnMul=(Button)findViewById(R.id.BtnMul);
- btnDiv=(Button)findViewById(R.id.BtnDivide);
- btnPoint=(Button)findViewById(R.id.BtnNumPoint);
- btnEqu=(Button)findViewById(R.id.BtnEqual);
- btnAbout=(Button)findViewById(R.id.BtnAbout);
- listener0= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (EquBtnDownFlag) {
- displayText.setText(null);
- EquBtnDownFlag=false;
- }
- CharSequence temp=displayText.getText();
- String myString=temp.toString();
- myString+="0";
- displayText.setText(myString);
- }
- };
- listener1= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (EquBtnDownFlag) {
- displayText.setText(null);
- EquBtnDownFlag=false;
- }
- CharSequence temp=displayText.getText();
- String myString=temp.toString();
- myString+="1";
- displayText.setText(myString);
- }
- };
- listener2= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (EquBtnDownFlag) {
- displayText.setText(null);
- EquBtnDownFlag=false;
- }
- CharSequence temp=displayText.getText();
- String myString=temp.toString();
- myString+="2";
- displayText.setText(myString);
- }
- };
- listener3= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (EquBtnDownFlag) {
- displayText.setText(null);
- EquBtnDownFlag=false;
- }
- CharSequence temp=displayText.getText();
- String myString=temp.toString();
- myString+="3";
- displayText.setText(myString);
- }
- };
- listener4= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (EquBtnDownFlag) {
- displayText.setText(null);
- EquBtnDownFlag=false;
- }
- CharSequence temp=displayText.getText();
- String myString=temp.toString();
- myString+="4";
- displayText.setText(myString);
- }
- };
- listener5= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (EquBtnDownFlag) {
- displayText.setText(null);
- EquBtnDownFlag=false;
- }
- CharSequence temp=displayText.getText();
- String myString=temp.toString();
- myString+="5";
- displayText.setText(myString);
- }
- };
- listener6= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (EquBtnDownFlag) {
- displayText.setText(null);
- EquBtnDownFlag=false;
- }
- CharSequence temp=displayText.getText();
- String myString=temp.toString();
- myString+="6";
- displayText.setText(myString);
- }
- };
- listener7= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (EquBtnDownFlag) {
- displayText.setText(null);
- EquBtnDownFlag=false;
- }
- CharSequence temp=displayText.getText();
- String myString=temp.toString();
- myString+="7";
- displayText.setText(myString);
- }
- };
- listener8= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (EquBtnDownFlag) {
- displayText.setText(null);
- EquBtnDownFlag=false;
- }
- CharSequence temp=displayText.getText();
- String myString=temp.toString();
- myString+="8";
- displayText.setText(myString);
- }
- };
- listener9= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (EquBtnDownFlag) {
- displayText.setText(null);
- EquBtnDownFlag=false;
- }
- CharSequence temp=displayText.getText();
- String myString=temp.toString();
- myString+="9";
- displayText.setText(myString);
- }
- };
- listenerPoint= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (EquBtnDownFlag) {
- displayText.setText(null);
- EquBtnDownFlag=false;
- }
- CharSequence temp=displayText.getText();
- String myString=temp.toString();
- myString+=".";
- displayText.setText(myString);
- }
- };
- listenerAdd= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- CharSequence temp=displayText.getText();
- if (temp.equals(null)) {
- return;
- }
- String myString=temp.toString();
- num1=Double.parseDouble(myString);
- CalType=1;
- displayText.setText(null);
- }
- };
- listenerSub= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- CharSequence temp=displayText.getText();
- if (temp.equals(null)) {
- return;
- }
- String myString=temp.toString();
- num1=Double.parseDouble(myString);
- CalType=2;
- displayText.setText(null);
- }
- };
- listenerMul= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- CharSequence temp=displayText.getText();
- if (temp.equals(null)) {
- return;
- }
- String myString=temp.toString();
- num1=Double.parseDouble(myString);
- CalType=3;
- displayText.setText(null);
- }
- };
- listenerDiv= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- CharSequence temp=displayText.getText();
- if (temp.equals(null)) {
- return;
- }
- String myString=temp.toString();
- num1=Double.parseDouble(myString);
- CalType=4;
- displayText.setText(null);
- }
- };
- listenerEqu= new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- CharSequence temp=displayText.getText();
- if (temp.equals(null)) {
- return;
- }
- String myString=temp.toString();
- num2=Double.parseDouble(myString);
- switch(CalType)
- {
- case 0:
- result=num2;
- break;
- case 1:
- result=num1+num2;
- break;
- case 2:
- result=num1-num2;
- break;
- case 3:
- result=num1*num2;
- break;
- case 4:
- result=num1/num2;
- break;
- default:
- result=0;
- break;
- }
- String temp_result=String.valueOf(result);
- displayText.setText(temp_result);
- EquBtnDownFlag=true;
- }
- };
- listenerAbout=new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- Intent intent1=new Intent(MainActivity.this,ActivityAbout.class);
- startActivity(intent1);
- }
- };
- btn_num0.setOnClickListener(listener0);
- btn_num1.setOnClickListener(listener1);
- btn_num2.setOnClickListener(listener2);
- btn_num3.setOnClickListener(listener3);
- btn_num4.setOnClickListener(listener4);
- btn_num5.setOnClickListener(listener5);
- btn_num6.setOnClickListener(listener6);
- btn_num7.setOnClickListener(listener7);
- btn_num8.setOnClickListener(listener8);
- btn_num9.setOnClickListener(listener9);
- btnPoint.setOnClickListener(listenerPoint);
- btnAdd.setOnClickListener(listenerAdd);
- btnSub.setOnClickListener(listenerSub);
- btnMul.setOnClickListener(listenerMul);
- btnDiv.setOnClickListener(listenerDiv);
- btnEqu.setOnClickListener(listenerEqu);
- btnAbout.setOnClickListener(listenerAbout);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.activity_main, menu);
- return true;
- }
- }
package com.njupt.zhb.calculator;
import android.os.Bundle;
import android.R.bool;
import android.R.integer;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.lang.*;
import android.view.View.OnClickListener;
public class MainActivity extends Activity {
Button btn_num1;
Button btn_num2;
Button btn_num3;
Button btn_num4;
Button btn_num5;
Button btn_num6;
Button btn_num7;
Button btn_num8;
Button btn_num9;
Button btn_num0;
Button btnEqu;
Button btnAdd;
Button btnSub;
Button btnMul;
Button btnDiv;
Button btnPoint;
Button btnAbout;
OnClickListener listener0=null;
OnClickListener listener1=null;
OnClickListener listener2=null;
OnClickListener listener3=null;
OnClickListener listener4=null;
OnClickListener listener5=null;
OnClickListener listener6=null;
OnClickListener listener7=null;
OnClickListener listener8=null;
OnClickListener listener9=null;
OnClickListener listenerEqu=null;
OnClickListener listenerAdd=null;
OnClickListener listenerSub=null;
OnClickListener listenerMul=null;
OnClickListener listenerDiv=null;
OnClickListener listenerPoint=null;
OnClickListener listenerAbout=null;
CharSequence input_text=null;
EditText displayText;
TextView textview1;
double num1=0;
double num2=0;
double result=0;
int CalType=0;
boolean EquBtnDownFlag=false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("计算器");
displayText=(EditText)findViewById(R.id.EditText1);
displayText.setText(null);
textview1=(TextView)findViewById(R.id.TextView1);
btn_num0=(Button)findViewById(R.id.BtnNum0);
btn_num1=(Button)findViewById(R.id.BtnNum1);
btn_num2=(Button)findViewById(R.id.BtnNum2);
btn_num3=(Button)findViewById(R.id.BtnNum3);
btn_num4=(Button)findViewById(R.id.BtnNum4);
btn_num5=(Button)findViewById(R.id.BtnNum5);
btn_num6=(Button)findViewById(R.id.BtnNum6);
btn_num7=(Button)findViewById(R.id.BtnNum7);
btn_num8=(Button)findViewById(R.id.BtnNum8);
btn_num9=(Button)findViewById(R.id.BtnNum9);
btnAdd=(Button)findViewById(R.id.BtnAdd);
btnSub=(Button)findViewById(R.id.BtnSubtract);
btnMul=(Button)findViewById(R.id.BtnMul);
btnDiv=(Button)findViewById(R.id.BtnDivide);
btnPoint=(Button)findViewById(R.id.BtnNumPoint);
btnEqu=(Button)findViewById(R.id.BtnEqual);
btnAbout=(Button)findViewById(R.id.BtnAbout);
listener0= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (EquBtnDownFlag) {
displayText.setText(null);
EquBtnDownFlag=false;
}
CharSequence temp=displayText.getText();
String myString=temp.toString();
myString+="0";
displayText.setText(myString);
}
};
listener1= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (EquBtnDownFlag) {
displayText.setText(null);
EquBtnDownFlag=false;
}
CharSequence temp=displayText.getText();
String myString=temp.toString();
myString+="1";
displayText.setText(myString);
}
};
listener2= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (EquBtnDownFlag) {
displayText.setText(null);
EquBtnDownFlag=false;
}
CharSequence temp=displayText.getText();
String myString=temp.toString();
myString+="2";
displayText.setText(myString);
}
};
listener3= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (EquBtnDownFlag) {
displayText.setText(null);
EquBtnDownFlag=false;
}
CharSequence temp=displayText.getText();
String myString=temp.toString();
myString+="3";
displayText.setText(myString);
}
};
listener4= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (EquBtnDownFlag) {
displayText.setText(null);
EquBtnDownFlag=false;
}
CharSequence temp=displayText.getText();
String myString=temp.toString();
myString+="4";
displayText.setText(myString);
}
};
listener5= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (EquBtnDownFlag) {
displayText.setText(null);
EquBtnDownFlag=false;
}
CharSequence temp=displayText.getText();
String myString=temp.toString();
myString+="5";
displayText.setText(myString);
}
};
listener6= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (EquBtnDownFlag) {
displayText.setText(null);
EquBtnDownFlag=false;
}
CharSequence temp=displayText.getText();
String myString=temp.toString();
myString+="6";
displayText.setText(myString);
}
};
listener7= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (EquBtnDownFlag) {
displayText.setText(null);
EquBtnDownFlag=false;
}
CharSequence temp=displayText.getText();
String myString=temp.toString();
myString+="7";
displayText.setText(myString);
}
};
listener8= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (EquBtnDownFlag) {
displayText.setText(null);
EquBtnDownFlag=false;
}
CharSequence temp=displayText.getText();
String myString=temp.toString();
myString+="8";
displayText.setText(myString);
}
};
listener9= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (EquBtnDownFlag) {
displayText.setText(null);
EquBtnDownFlag=false;
}
CharSequence temp=displayText.getText();
String myString=temp.toString();
myString+="9";
displayText.setText(myString);
}
};
listenerPoint= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (EquBtnDownFlag) {
displayText.setText(null);
EquBtnDownFlag=false;
}
CharSequence temp=displayText.getText();
String myString=temp.toString();
myString+=".";
displayText.setText(myString);
}
};
listenerAdd= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
CharSequence temp=displayText.getText();
if (temp.equals(null)) {
return;
}
String myString=temp.toString();
num1=Double.parseDouble(myString);
CalType=1;
displayText.setText(null);
}
};
listenerSub= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
CharSequence temp=displayText.getText();
if (temp.equals(null)) {
return;
}
String myString=temp.toString();
num1=Double.parseDouble(myString);
CalType=2;
displayText.setText(null);
}
};
listenerMul= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
CharSequence temp=displayText.getText();
if (temp.equals(null)) {
return;
}
String myString=temp.toString();
num1=Double.parseDouble(myString);
CalType=3;
displayText.setText(null);
}
};
listenerDiv= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
CharSequence temp=displayText.getText();
if (temp.equals(null)) {
return;
}
String myString=temp.toString();
num1=Double.parseDouble(myString);
CalType=4;
displayText.setText(null);
}
};
listenerEqu= new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
CharSequence temp=displayText.getText();
if (temp.equals(null)) {
return;
}
String myString=temp.toString();
num2=Double.parseDouble(myString);
switch(CalType)
{
case 0:
result=num2;
break;
case 1:
result=num1+num2;
break;
case 2:
result=num1-num2;
break;
case 3:
result=num1*num2;
break;
case 4:
result=num1/num2;
break;
default:
result=0;
break;
}
String temp_result=String.valueOf(result);
displayText.setText(temp_result);
EquBtnDownFlag=true;
}
};
listenerAbout=new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent1=new Intent(MainActivity.this,ActivityAbout.class);
startActivity(intent1);
}
};
btn_num0.setOnClickListener(listener0);
btn_num1.setOnClickListener(listener1);
btn_num2.setOnClickListener(listener2);
btn_num3.setOnClickListener(listener3);
btn_num4.setOnClickListener(listener4);
btn_num5.setOnClickListener(listener5);
btn_num6.setOnClickListener(listener6);
btn_num7.setOnClickListener(listener7);
btn_num8.setOnClickListener(listener8);
btn_num9.setOnClickListener(listener9);
btnPoint.setOnClickListener(listenerPoint);
btnAdd.setOnClickListener(listenerAdd);
btnSub.setOnClickListener(listenerSub);
btnMul.setOnClickListener(listenerMul);
btnDiv.setOnClickListener(listenerDiv);
btnEqu.setOnClickListener(listenerEqu);
btnAbout.setOnClickListener(listenerAbout);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
其实,当控件太多时,我们可以通过如下方式,减少Listener的数量:(http://rayleung.iteye.com/blog/539190)
- View.OnClickListener handler = View.OnClickListener() {
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.Button01: // doStuff
- break;
- case R.id.Button02: // doStuff
- break;
- }
- }
- }
- findViewById(R.id.myButton).setOnClickListener(handler);
- findViewById(R.id.myOtherButton).setOnClickListener(handler);