بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
شمارش معکوس و اجرای متد بعد از رسیدن به 0
استادان لطفا کمک کنید استاد آقا جانی لطفا کمک کن کارم گیره به خدا
ببخشید عکس گزاشتم هر چی سورس کد میزاشتم آخر خالی بود
من در برنامه شمارشگر معکوس میخوام وقتی زمان صفر میشه یک متد در یک کلاس دیگری اجرا بشه یا یه دکمه بدون کلیک اجرا بشه
مثل اینکه یه بازی اجرا میشه و وقت تموم میشه امتیاز رو مینویسه روی یک تکست خودم اینکارو میکنم و یه متد در یه کلاس رو صدا میزنم برنامه کرش میشه لطفا سریع کمک کنید
فکر کنم باید handler رو تنظیم کنم ولی بلد نیستم
این خطا

اینم کلاس Zaman

اینم کلاس HANDLER

public void payanezaman() {
TextView txtzamman = (TextView) findViewById(R.id.txt_zaman); 88
TextView txtpayan = (TextView) findViewById(R.id.txt_payan);
txtzamman.setVisibility(View.GONE);
txtpayan.setVisibility(View.GONE);
final TextView txtNatije = (TextView) findViewById(R.id.txt_natije);
txtNatije.setVisibility(View.VISIBLE);
sahih = dorost;
ghalat = (30) - (dorost);
if (ghalat > 3) {
natije = ("(شما موفق نشدید)");
txtNatije.setBackgroundColor(Color.parseColor("#f22516"));
} else {
natije = ("(شما موفق شدید)");
txtNatije.setBackgroundColor(Color.parseColor("#77c610"));
}
txtNatije.setText(" " + sahih + " " + "پاسخ صحیح" + " " + ghalat + " " + "پاسخ غلط" + " " + natije);
}
}
public void tavaghof() {
Toast.makeText(G.context, "وقت آزمون تمام شد", Toast.LENGTH_SHORT).show();
payanezaman();115
}
txtpayan.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
payanezaman();
}
});
}
0
0
متن کلاس Test1 ت هم بذار . ظاهرا مبدا خطا از اونجاست و مشکل توی اجرای متد mm.tavaghof ت هست ;) (12 سال پیش)
0
0
عزیز متد که فرا میخونم دقیقا اجرای یک کلید هست کلید پایان وقتی کلید رو میزنم درست کار میکنه ولی وقتی میخوام زمان که تموم میشه همون متد اجرا بشه ولی نمیشه و کرش میشه (12 سال پیش)
0
0
داداش میدونم چی میگی. ممکنه وقتی کلیدو میزنی یه متغییری هم مقدار دهی میکنی یا یه همچین چیزی. به هرحال چیزی که از logcat مشخصه اینه که مشکل اصلی از کلاس Test1 و خط 88 اون هست که یاعث خطا در خط 115 همون کلاس شده واینها باعث مشکل در اینجا شده. خواستی پروژه ات رو آپ کن تا بهتر بشه راهنماییت کرد. موفق باشی ;) (12 سال پیش)
0
0
متدی که گفتید در انتها اضافه کردم فکر نمیکنم چیز خاصی داشته باشه (12 سال پیش)
0
0
خب خط 88 و 115 کدومن؟ (12 سال پیش)
0
0
خط 115 و 88 رو نوشتم جلوش ولی بعید میدونم از اینا باشه من چون کلاس زمان از Tread ارث بری میکنه و برای نمایش خط 114 handler معرفی کردم ولی برای اجرای اون متد بلد نبودم تو کلاس G هندلر بسازم اگر ببینی من در آخر کد باتن که همون متد رو صدا میزنه نوشتم و مشکلی نداره و کار میکنه و میخوام وقتی زمان هم صفر میشه اون متد صدا زده بشه ولی نمیدونم چرا نمیشه
اصلن شما خودت میتونی یه کد زمان به من بدی که یه متد از یه اکتیویتی رو صدا بزنه خیلی لطف میکنی (12 سال پیش)
0
0
باشه . اگه میدونی که مشکل از handler ه پاسخی رو که گذاشتم نگاه کن (12 سال پیش)
0
0
دوست من در سئوال قبلیه امروز نوشتم. شما در Android Manifest کلاس G که در اون سئوال اسمش H بود رو به عنوان android:name اضافه نکرده اید. (12 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
sadeghbarout
12 سال پیش
0
0
اگه میدونی که مشکل از handler ه این یه سورس که بعد از 5 ثانیه یه متد از یه اکتیویتی دیگه رو اجرا میکنه و متن رو تغییر میده :
(توجه کن که صفحه main یه TextView داره)
کد اکتیویتی 1 :
package test.test.payane_zaman;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;
public class ActivityPayanezaman extends Activity {
/** Called when the activity is first created. */
public Handler handler;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
handler = new Handler();
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(new Runnable() {
@Override
public void run() {
TextView txt1 = (TextView) findViewById(R.id.txt1);
Activity2.payan(txt1);
}
});
}
});
thread.start();
}
}
کد اکتیویتی 2 :
package test.test.payane_zaman; import android.app.Activity; import android.widget.TextView; public class Activity2 extends Activity { public static void payan(TextView txt) { txt.setText("zaman tamam shod"); } }
گفتم که مشکل از handler نیست. من نمیدونم تو برنامه ات چکار کردی ولی یه چک دیگه بکن ببین صفحه ای که txt_zaman توشه موقع اجرا ی کد بازه؟ شاید اول داری کدو اجرا میکنی بعد دستور باز کردن صفحه رو گذاشتی . اگه نشد که دیگه چیزی به ذهنم نمیرسه. خواستی پروژه ات رو یه جا آپ کن شاید بتونم کمکت کنم . موفق باشی ;) (12 سال پیش)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .