ورود

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



sa1378
شنبه 14 تیر 1393, 20:29 عصر
سلام
این یه برنامه ساده هست که بعد از کلیک روی یک دکمه از 5 EditText عدد گرفته میشه و اگه هرکدوم از عدد ها درست بود به مقدار Textview که عدد اولیش 0 هست 1 عدد اضافه میشه
موقع اجرا وقتی دکمه رو میزنم و عدد هارو هم درست وارد میکنم به مقدار اضافه نمیشه.
public class A1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.a1);
Button button=(Button)findViewById(R.id.button);
final EditText text1= (EditText) findViewById(R.id.editText);
final EditText text2= (EditText) findViewById(R.id.editText2);
final EditText text3= (EditText) findViewById(R.id.editText3);
final EditText text4= (EditText) findViewById(R.id.editText4);
final EditText text5= (EditText) findViewById(R.id.editText5);
final TextView textpoint=(TextView)findViewById(R.id.textView100) ;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

int a1=Integer.parseInt(text1.getText().toString());
int a2=Integer.parseInt(text2.getText().toString());
int a3=Integer.parseInt(text3.getText().toString());
int a4=Integer.parseInt(text4.getText().toString());
int a5=Integer.parseInt(text5.getText().toString());
if(a1==20){
int score1=(Integer.parseInt(textpoint.getText().toStr ing()));
score1=score1+1;
textpoint.setText(score1);
}
if(a2==9){
int score2=(Integer.parseInt(textpoint.getText().toStr ing()));
score2=score2+1;
textpoint.setText(score2);
}
if(a3==14){
int score3=(Integer.parseInt(textpoint.getText().toStr ing()));
score3=score3+1;
textpoint.setText(score3);
}
if(a4==8){
int score4=(Integer.parseInt(textpoint.getText().toStr ing()));
score4=score4+1;
textpoint.setText(score4);
}
if(a5==900){
int score5=(Integer.parseInt(textpoint.getText().toStr ing()));
score5=score5+1;
textpoint.setText(score5);
}

};
});

}
}

parvizwpf
شنبه 14 تیر 1393, 20:55 عصر
چک کنید آیا مثلا score1 مقدار درستی میگیره؟

sa1378
شنبه 14 تیر 1393, 21:04 عصر
شرط a1 رو این کردم بازم نشد:
if(a1==20){

int score1=(Integer.parseInt(textpoint.getText().toStr ing()));
textpoint.setText(score1);
/*
score1=score1+1;
textpoint.setText(score1);
*/

}

sa1378
شنبه 14 تیر 1393, 21:06 عصر
حتی شرط رو هم برداشتم باز نشد

sara_traveler
شنبه 14 تیر 1393, 21:12 عصر
با د ستور log ببينيد مقدار چند بر ميگردونه
يا breakpoint

sa1378
شنبه 14 تیر 1393, 21:14 عصر
با د ستور log ببينيد مقدار چند بر ميگردونه
يا breakpoint

ببخشید من دامنه اطلاعاتم کمه توی اندروید
اگه میشه کد بنویسید

از همه پستای مفید اینجا تشکر میکنم

sara_traveler
شنبه 14 تیر 1393, 21:20 عصر
قبل if اينها بنويسيد
بعد در درقسمت پايين صفحه در قسمت log ببينيد مقدارa چند چاپ ميكنه





log.w("a",text1.getText().toString())
log.w("b",text2.getText().toString())

sa1378
شنبه 14 تیر 1393, 21:22 عصر
برای log باید چیزی import کنیم؟
آخه قرمز میشه
120817

mfaridi
شنبه 14 تیر 1393, 21:39 عصر
یه try-catch بگیر ببین کجای برنامه ارور میده
یا میتونی برنامه رو روی حالت دیباگ بیاری بالا تا دقیق بهت بگه کدوم خط مشکل داری این کدم تو manifest بنویس و بعد با حالت دیباگ اجرا کن
android:debuggable="true"

sa1378
شنبه 14 تیر 1393, 21:51 عصر
یه try-catch بگیر ببین کجای برنامه ارور میده
یا میتونی برنامه رو روی حالت دیباگ بیاری بالا تا دقیق بهت بگه کدوم خط مشکل داری این کدم تو manifest بنویس و بعد با حالت دیباگ اجرا کن
android:debuggable="true"

من run توی برنامم خرابه
apk میسازم توی گوشی اجرا میکنم

sa1378
شنبه 14 تیر 1393, 21:54 عصر
اصلا خودتون یه برنامه رو اگه لطف کنین بنویسین که از یه Edittext یه string بگیره
اگه برابر با عبارت ما بود عددی که توی یه textview هست رو +1 بکنه

sa1378
یک شنبه 15 تیر 1393, 08:47 صبح
مشکل رو فهمیدم
مشکل در دستورات If هست که اگه شرط هم درست باشه اجرا نمیشن
برنامه رو به این تغییر دادم:
String a1=text1.getText().toString();
String a2=(text2.getText().toString());
String a3=(text3.getText().toString());
String a4=(text4.getText().toString());
String a5=(text5.getText().toString());
int score=0;
if(a1=="27"){
score +=5;

}
if(a2=="128"){
score+=5;
}
if(a3=="2"){
score+=5;
}
if(a4=="2"){
score+=5;
}
if(a5=="6"){
score+=5;

}

textpoint.setText("امتیاز شما :"+score);
"امتیاز شما : 0 "چاپ میشه ولی اگه توی edittext ها عبارت درست هم بزاریم بازم صفر میمونه

sa1378
یک شنبه 15 تیر 1393, 09:10 صبح
خب دیگه درست شد...
مشکل از این بود که وقتی یه edittext رو خالی میذاشتی نمیتونست به عدد تبدیلش کنه
حالا درستش کردم
ممنون از کمکاتون


حالا یک چیز دیگه
میخوام اگه شرط برقرار بود یعنی عدد توی فیلد ها درست بود رنگ متن اون فیلد ها از آبی به سبز تغییر پیدا کنه.اگه غلط بود هم قرمز بشه
چه باید کرد؟

mfaridi
یک شنبه 15 تیر 1393, 14:07 عصر
برای تغیر رنگ
txt1.setTextColor(Color.GREEN);