آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در اجرای hangman

127509  7 سال پیش  7 سال پیش
0 0

وقتی پروژه هنگ من رو اجرا می کنم و روی حروفی که در متن مورد نظر ورجود نداره تاچ میکنم به جای تغییر عکس با کرش اپلیکیشن مواجه میشم

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private String wordDashed;
private Integer failCount;
private String selectWord(){
return"Hello World";
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final String word = selectWord();
wordDashed = "";
for (int i=0; i<word.length(); i++){
if (word.charAt(i) != ' ') {
wordDashed += "-";
} else {
wordDashed += " ";
}
}

Log.i("test", wordDashed);

final ImageView img_face = (ImageView) findViewById(R.id.img_face);
img_face.setImageResource(R.drawable.face_1);

final TextView txt_word = (TextView) findViewById(R.id.txt_word);
txt_word.setText(wordDashed);

TextView txt_a = (TextView) findViewById(R.id.txt_a);
TextView txt_b = (TextView) findViewById(R.id.txt_b);
TextView txt_c = (TextView) findViewById(R.id.txt_c);
TextView txt_d = (TextView) findViewById(R.id.txt_d);
TextView txt_e = (TextView) findViewById(R.id.txt_e);
TextView txt_f = (TextView) findViewById(R.id.txt_f);
TextView txt_g = (TextView) findViewById(R.id.txt_g);
TextView txt_h = (TextView) findViewById(R.id.txt_h);
TextView txt_i = (TextView) findViewById(R.id.txt_i);
TextView txt_j = (TextView) findViewById(R.id.txt_j);
TextView txt_k = (TextView) findViewById(R.id.txt_k);
TextView txt_l = (TextView) findViewById(R.id.txt_l);
TextView txt_m = (TextView) findViewById(R.id.txt_m);
TextView txt_n = (TextView) findViewById(R.id.txt_n);
TextView txt_o = (TextView) findViewById(R.id.txt_o);
TextView txt_p = (TextView) findViewById(R.id.txt_p);
TextView txt_q = (TextView) findViewById(R.id.txt_q);
TextView txt_r = (TextView) findViewById(R.id.txt_r);
TextView txt_s = (TextView) findViewById(R.id.txt_s);
TextView txt_t = (TextView) findViewById(R.id.txt_t);
TextView txt_u = (TextView) findViewById(R.id.txt_u);
TextView txt_v = (TextView) findViewById(R.id.txt_v);
TextView txt_w = (TextView) findViewById(R.id.txt_w);
TextView txt_x = (TextView) findViewById(R.id.txt_x);
TextView txt_y = (TextView) findViewById(R.id.txt_y);
TextView txt_z = (TextView) findViewById(R.id.txt_z);

View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View view) {
TextView textView = (TextView) view;
String id = textView.getResources().getResourceEntryName(textView.getId());
String letter = id.replace("txt_", "");
char letterChar = letter.charAt(0);
Log.i("Test" , "Clicked On " + letter);

String wordLowercase = word.toLowerCase();
if (wordLowercase.contains(letter)) {
Log.i("Test", "word contain " + letter);
for (int i=0;i<wordLowercase.length(); i++) {
if (wordLowercase.charAt(i) == letterChar) {
char[] wordDashedCharArray = wordDashed.toCharArray();
wordDashedCharArray[i] = letterChar;
wordDashed = new String(wordDashedCharArray);
txt_word.setText(wordDashed);
}
}
} else {
Log.i("Test", "word not contain " + letter);
failCount++;
if (failCount > 8) {
Log.i("test", "GAME OVER");
}
int imageId = R.drawable.face_1;

switch (failCount) {
case 1: imageId = R.drawable.face_2; break;
case 2: imageId = R.drawable.face_3; break;
case 3: imageId = R.drawable.face_4; break;
case 4: imageId = R.drawable.face_5; break;
case 5: imageId = R.drawable.face_6; break;
case 6: imageId = R.drawable.face_7; break;
case 7: imageId = R.drawable.face_8; break;
case 8: imageId = R.drawable.face_9; break;
}
img_face.setImageResource(imageId);
}
textView.setVisibility(View.INVISIBLE);
}
};

txt_a.setOnClickListener(listener);
txt_b.setOnClickListener(listener);
txt_c.setOnClickListener(listener);
txt_d.setOnClickListener(listener);
txt_e.setOnClickListener(listener);
txt_f.setOnClickListener(listener);
txt_g.setOnClickListener(listener);
txt_h.setOnClickListener(listener);
txt_i.setOnClickListener(listener);
txt_j.setOnClickListener(listener);
txt_k.setOnClickListener(listener);
txt_l.setOnClickListener(listener);
txt_m.setOnClickListener(listener);
txt_n.setOnClickListener(listener);
txt_o.setOnClickListener(listener);
txt_p.setOnClickListener(listener);
txt_q.setOnClickListener(listener);
txt_r.setOnClickListener(listener);
txt_s.setOnClickListener(listener);
txt_t.setOnClickListener(listener);
txt_u.setOnClickListener(listener);
txt_v.setOnClickListener(listener);
txt_w.setOnClickListener(listener);
txt_x.setOnClickListener(listener);
txt_y.setOnClickListener(listener);
txt_z.setOnClickListener(listener);
}
}
 برای این سوال 2 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
k112  7 سال پیش
+1 0

 پاسخ صحیح

با سلام 
کلاس wrapper مثل نوع داده اولیه نیست که بدون نمونه سازی بشه ازش استفاده کرد

  private Integer failCount;

وقتی شما از کد بالا استفاده میکنید عملا شی وجود نداره که مقدار اولیه داشته باشه پس

  private Integer failCount = new Integer(0);

مشکل شما حل خواهد شد

موفق باشید

پاسخ به سوال 
127509  7 سال پیش
0 0

مشکل حل شد.ممنون


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .