مشکل در تعریف TextView در کلاس اکتیویتی،فورس استاپ
سلام
برای اینکه بتونم از دکمه کم و زیاد برای نشون دادن ذکر های اضافه شده استفاده کنم مجبورم کد رو این شکلی کنم
public class zekrshomar extends ZekrActivity {
TextView shz = (TextView) findViewById(R.id.txtZekrShow);
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
int keyCode = event.getKeyCode();
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
counter++;
shz.setText("" + counter);
if (event.getAction() == KeyEvent.ACTION_UP) {
counter++;
shz.setText("" + counter);
}
return true;
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
if (event.getAction() == KeyEvent.ACTION_UP) {
counter--;
shz.setText("" + counter);
}
return true;
}
return super.dispatchKeyEvent(event);
}
وقتی برنامه رو اجرا میکنم میرم تو این قسمت فورس استاپ میده
البته اگه TextView رو اینجا ننویسم ببرمش همون پایین و
shz.setText("" + counter);
ها رو حذف کنم برنامه درست کار میکنه به counter هم اضافه میکنه اما نشون نمیدتشون تا زمانی که یکبار با دکمه های رو روی صفحه کم یا زیاد کنیم و نشون بده
.
من امتحان کردم راه های دیگه رو کالا وقتی TextView رو اون بالا بنویسم ارور میده
.
دکمه ها رو هم که وقتی بخوام اون پایین معرفی کنم خودتون میدونید دیگه نمیشه
.
کمک
شما باید تکست ویو public تعریف کنین تا بتونین توی توابع زیر شاخه ی کلاستون ازش استفاده کنین و اگر توی کلاس های دیگه هم خواستین ازش استفاده کنین باید public static تعریف کنین.
همچنین باید خارج از بدنه ی کلاس داخل متد OnCreate و یا توابع خودتون مقدار دهی کنین!
textView رو به شکل زیر تعریف کنین
برای استفاده فقط در همین کلاس :
public TextView shz =(TextView) findViewById(R.id.txtZekrShow);
و برای استفاده هم در این کلاس و هم در کلاس های دیگه ، در هر کلاسی که خواستید به صورت static تعریف کنین :
public static TextView shz ;
و بعد توی توابع یا متد OnCreate کلاسی که میخواین داخلش از textView استفاده کنین ، مقدار دهی کنید به عنوان مثال شما باید خط زیر رو توی تابع ()dispatchKeyEvent در کنار تعریف keyCode بنویسید:
shz = (TextView) findViewById(R.id.txtZekrShow);
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .