بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل در پروژه Counter استاد
در قسمت انتهایی آموزش Counter استاد بعد از پایان تایمر یک toast میذاره من میخوام جای toast یک دیالوگ ساده نمایش داده بشه ؟ خودم اینجوری ست کردم ولی بعد پایان تایم برنامه کرش میکنه !!!
G.HANDLER.post(new Runnable() {
@Override
public void run() {
Toast.makeText(G.context, "Time is Finish..", Toast.LENGTH_SHORT).show();
Dialog dialog = new Dialog(G.context);
dialog.setContentView(R.layout.dialog);
dialog.show();
0
0
به جای context اپلیکشن از context اکتی وی تی استفاده کنید که کاملتر است .یعنی به جای G.context بنویسید ActivityName.this و یا this (11 سال پیش)
0
0
قبول نمیکنه و خطای خط چین میگیره با این پیغام
No enclosing instance of the type HangmanActivity is accessible in scope (11 سال پیش)
0
0
فکر کنم دیالوگ context اپلیکیشن قبول نمیکنه.از this استفاده کن (11 سال پیش)
0
0
قبول نمیکنه و خطای خط چین میگیره با این پیغام No enclosing instance of the type HangmanActivity is accessible in scope
(11 سال پیش)
0
0
اگه میتونی از قسمت ارور های توی logcat یه عکس بگیرو اینجا بزار راحت تر میشه تشخیص داد (11 سال پیش)
برای این سوال 6 پاسخ وجود دارد.
پاسخ به سوال
Atlas
11 سال پیش
0
0
پاسخ به سوال
Sajad HP
11 سال پیش
0
0
در کلاس G یک فیلد با نام زیر بسازید :
public static Activity activity;
بعد به ورودی Dialog این فیلد رو بده بجای context:
Dialog dialog = new Dialog(G.activity);
پاسخ به سوال
Atlas
11 سال پیش
0
0
package com.uncocoder.app.course.counter;
import android.app.Dialog;
import android.util.Log;
import android.widget.TextView;
public class ThreadCounter extends Thread {
private int seconds;
private int counter;
private TextView textView;
public void setSeconds(int value) {
seconds = value;
counter = seconds;
}
public void setTextView(TextView value) {
textView = value;
}
@Override
public void run() {
super.run();
while (counter > 0) {
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
counter--;
if (textView != null) {
G.HANDLER.post(new Runnable() {
@Override
public void run() {
int min = (int) Math.floor(counter / 60);
int sec = counter % 60;
String minPrefix = "";
if (min < 10) {
minPrefix = "0";
}
String secPrefix = "";
if (sec < 10) {
secPrefix = "0";
}
textView.setText(minPrefix + min + ":" + secPrefix + sec);
}
});
}
Log.i("LOG", "Counter: " + counter);
}
G.HANDLER.post(new Runnable() {
@Override
public void run() {
Dialog dialog = new Dialog(G.activity);
dialog.setContentView(R.layout.dialog);
dialog.show();
}
});
}
}
پاسخ به سوال
Atlas
11 سال پیش
0
0
package com.uncocoder.app.course.counter;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class ActivityMain extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView txtCounter = (TextView) findViewById(R.id.txtCounter);
ThreadCounter counter = new ThreadCounter();
counter.setSeconds(5);
counter.setTextView(txtCounter);
counter.start();
}
}
پاسخ به سوال
sun.of.god.7
11 سال پیش
+1
0
دادا این کد اینم نتیجش
package mehran.sunofgod.alarm;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.os.Handler;
public class AlarmActivity extends Activity {
Handler handler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Thread th = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(4000);
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
handler.post(new Runnable() {
@Override
public void run() {
Dialog d = new Dialog(AlarmActivity.this);
d.setContentView(R.layout.main);
d.show();
}
});
}
});
th.start();
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .

