PDA

View Full Version : مشکل در اجرای برنامه در Emulator



skiboys
جمعه 29 اسفند 1393, 22:58 عصر
سلام خدمت دوستان گرامی سال جدید را به شما تبریک می گم و آرزوی سال پر از موفقیت و شادی را دارم
من یک برنامه ماشین حساب در Eclipse نوشتم و در برنامه خطایی به من نداده ولی هنگامی که شبیه ساز را اجرا می کنم و برای مثال می خواهیم دو عدد را باهم جمع کنیم هنگامی که علامت مساوی را می زنم تا نتیجه را نشان دهد برنامه "unfortunately app has stopped" را نمایش می دهد و بسته می شود به نظر شما مشکل از کجاست؟
http://s4.picofile.com/file/8178117442/error_calculator.JPG
قسمت Main.java هم به صورت زیر است

package com.Tools.s01_e07;


import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TextView;



public class Main extends Activity {

private TextView show;
private ImageView n1;
private ImageView n2;
private ImageView n3;
private ImageView n4;
private ImageView n5;
private ImageView n6;
private ImageView n7;
private ImageView n8;
private ImageView n9;
private ImageView n0;

private ImageView nf1;
private ImageView nf2;
private ImageView nf3;
private ImageView nf4;
private ImageView nf5;
private ImageView nf6;

private int V1;
private String F;
private int V2;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

n1=(ImageView) findViewById(R.id.n1);
n2=(ImageView) findViewById(R.id.n2);
n3=(ImageView) findViewById(R.id.n3);
n4=(ImageView) findViewById(R.id.n4);
n5=(ImageView) findViewById(R.id.n5);
n6=(ImageView) findViewById(R.id.n6);
n7=(ImageView) findViewById(R.id.n7);
n8=(ImageView) findViewById(R.id.n8);
n9=(ImageView) findViewById(R.id.n9);
n0=(ImageView) findViewById(R.id.n0);

nf1=(ImageView) findViewById(R.id.nf1);
nf2=(ImageView) findViewById(R.id.nf2);
nf3=(ImageView) findViewById(R.id.nf3);
nf4=(ImageView) findViewById(R.id.nf4);
nf5=(ImageView) findViewById(R.id.nf5);
nf6=(ImageView) findViewById(R.id.nf6);
show=(TextView) findViewById(R.id.show);

n1.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

show.setText(show.getText()+"1");
}
});

n2.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

show.setText(show.getText()+"2");
}
});

n3.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

show.setText(show.getText()+"3");
}
});

n4.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

show.setText(show.getText()+"4");
}
});

n5.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

show.setText(show.getText()+"5");
}
});

n6.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

show.setText(show.getText()+"6");
}
});

n7.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

show.setText(show.getText()+"7");
}
});

n8.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

show.setText(show.getText()+"8");
}
});

n9.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

show.setText(show.getText()+"9");
}
});

n0.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

show.setText(show.getText()+"0");
}
});

nf1.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

V1=Integer.parseInt(show.getText().toString());
F="+";
show.setText(" ");
}
});

nf2.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
V1=Integer.parseInt(show.getText().toString());
F="-";
show.setText(" ");

}
});

nf3.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

V1=Integer.parseInt(show.getText().toString());
F="*";
show.setText(" ");
}
});

nf4.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

V1=Integer.parseInt(show.getText().toString());
F="/";
show.setText(" ");
}
});

nf5.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

if(F!="" && show.getText().toString()!="")
{
int res=0;
V2=Integer.parseInt(show.getText().toString());
if(F=="+"){

res=V1+V2;
}
if(F=="-"){

res=V1-V2;
}
if(F=="*"){

res=V1*V2;
}
if(F=="/"){

res=V1/V2;

}

show.setText(res+"");
}
}
});

nf6.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {

}
});

}




}

shahin bahari
شنبه 01 فروردین 1394, 15:24 عصر
if(F=="+")
این روش درستی برای مقایسه String ها نیست و باید از F.equal("+") استفاده کنید.

skiboys
شنبه 01 فروردین 1394, 17:23 عصر
مشکل به صورت خیلی جالبی حل شد Eclipse خطایی نگرفت ولی به جای
show.setText(" "); از
show.setText("");استفاده کردم و مشکل حل شد نمی دونم فرقشون توی چی هست و این فاصله چرا باعث مشکل شد

skiboys
جمعه 07 فروردین 1394, 00:46 صبح
کسی علتشو نمی دونه؟