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

مشکل آرایه ها- درس HangMan --- تقریبا حل شد !!!

امید حسینی  10 سال پیش  10 سال پیش
0 0

با سلام خدمت تمامی دوستان

به یه مشکلی برخوردم 2 هفته است درگیرش شدم و هیچ راهی براش پیدا نمیکنم

از دوستان و مهندسین عزیز خواهشمندم کمکم کنن

 

مشکلم رو بطور خلاصه توی یک پروژه ساده بیان میکنم.... فایل مربوطه هم اینه 

هنگ من دارای مشکل آرایه

میخوام هر بار که روی دکمه های A B C کلیک میکنم .... تکست ویوی من مثل درس هنگ من بتونه یکی یکی اونها رو نمایش بده

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

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

عکس زیر صفحه main‌ رو نشون میده خیلی ساده

کدهای زیر هم که مربوط به صفحه اکتیویتیه و مشکل توی خط 28 ام وجود داره.... لطفا کمک کنید .... با تشکر

0 0
از صفحه logcat زمانی که کرش میکنه هم یه تصویری بذارین.... (10 سال پیش)
+1 0
مشکل اینجاست که در ابتدا txt1 مقداری نداره .دفعه اول به chararray تبدیل میشه و خونه 0 ام توسط کاراکتر روی button پرمیشه و سری دوم بازهم به chararray تبدیل میشه درحالیکه این آرایه یک عضو داره(همون خونه 0 ام) ولی اینبار مقدار n برابر 1 هست و وقتی برای بار دوم روی button کلیک میکنید در خط 28 خطای array index out of bound روی خواهد داد چون میخواین ایندکس شماره 1 آرایه ای که فقط تا ایندکس 0 داره رو مقدار دهی کنید... در پروژه hang man این تبدیل مقدار textview با اینی که شما اینجا نوشتی متفاوت بود و تفاوتش این بود که مقدار متنی textview میشد چنتا خط تیره (به تعداد حروف کلمه حدس زده شده) مثلا 3 یا بیشتر و بعد از تبدیل به chararray مقدار خانه های آرایه بوجود آمده خط تیره بوده که ما اونها رو به کاراکترهای روی button جایگزین میکردیم و در حقیقت آرایه بوجود آمده از فراخوانی متد toCharArray دارای طول 0 نبود... (10 سال پیش)
0 0
ممنونم از اینکه وقت گذاشتید و مشکل رو توضیح دادید خیلی ممنون فقط یه سوال فرض کنیم الان همین پروژه رو داریم و میخوایم درستش کنیم که کرش نکنه آیا راهی هست؟ مثلا میشه هر دفعه بعد از انجام عملیات بتونیم txt1 رو پاک کنیم؟ خواهش میکنم اگر راهی به نظرتون میرسه بنده رو راهنمایی کنید چون من واقعا خودم هنگ کردم .... (10 سال پیش)
0 0
دوست عزیز عکس از logبگیر بفرست تا بررسی کنیم (10 سال پیش)
 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
امید حسینی  10 سال پیش
0 0

عکس از logCat

با تشکر از جناب فرمانی...

اگر امکانش هست میخواستم بدونم میشه همین فایل رو تصحیح کرد که دیگه کرش نکنه؟ .....

پاسخ به سوال 
مسعود فرمانی  10 سال پیش
+1 0

اگه این پروژه تون فقط جنبه تست و تمرین و آموزش داره و فقط میخواین که کاراکتر های button ها در textview نمایش داده بشه و دیگر هیچ!! به روش پایین عمل کنید :

و اگر میخواین نحوه کار با charArray رو تمرین کنید لازمه که مثلا چنتا space توی TextView بزنین که آرایه حاصل از charArray چنتا خونه داشته باشه ولی درکل charArray توی کاری که شما میخواین انجام بدین کاربردی نداره و توی برنامه های مشابه hang man بدرد میخوره....

//کدهای onClickListener رو به این صورت بنویسید و بقیه رو به همون صورت قبلی
onClickListener x = new onClickListener(){
@override
public void onClick(View view){
Button btn = (Button) view;
txt1.setText(txt1.getText.toString() + btn.getText.toString() );//مقدار قبلی تکست ویو رو میگیره و با مقداری که از دکمه میخونه جمع میکنه دوباره توی تکست ویو قرار میده
}
};
پاسخ به سوال 
امید حسینی  10 سال پیش
0 0

بازم ممنونم جناب فرمانی

بنده دقیقا کارهایی که شما فرمودید رو انجام دادم

اما بلافاصله یک ایراد میگیره و به مرحله اجرا نمیرسه

دقیقا نمیدونم انگار میگه که getText رو باید بصورت فیلد وارد کنیم یا یک همچین چیزایی.....

عکسش رو هم ضمیمه کردم که ملاحظه بفرمائید....

0 0
خواهش میکنم عزیز...در اینجا مشکل اینه که getText یک متد از کلاس view هستش و مثل toString علامت پرانتز رو بعدش باید بذارید که البته من چون توی محیط IDE تایپ نکردم و همینجا تایپش کردم پرانتزا رو جا انداختم!... (10 سال پیش)
پاسخ به سوال 
امید حسینی  10 سال پیش
0 0

خب حل شد جناب فرمانی عزیز

یعنی با درست کردن یک فیلد تکست ویو مشکل حل شد.

 

اما حقیقتش بنده این قضیه آرایه رو نتونستم خوب درک کنم که چرا نمیشد سلول ۰ رو هر بار به یک btn ربط بدم

 

در هر حال بابت توجهتون ممنونم

خیلی خیلی لطف کردید

+1 0
شما هربار خانه 0 آرایه رو مقدار نمیدادید بلکه خونه n ام بوده و مقدار n رو هربار یکی اضافه میکردی... (10 سال پیش)
+2 0
بازم میگم وظیفه اس عزیز ..منم مثه شما دارم آموزش میبینم و هدف از بوجود اومدن این وبسایت هم همینه که هرکسی در حد توانش بتونه بقیه رو راهنمایی کنه و از رهنمایی های بقیه استفاده کنه..در هر حال امیدوارم که تونسته باشم کمکی کنم ..موفق باشی دوست من (10 سال پیش)

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