انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در alertdialog ، در برنامه اندروید

مشکل در alertdialog ، در برنامه اندروید

#1
سلام
من یک مشکل اساسی با این آلرت دارم ، اینکه من از gps سرعت و گرفتم و می خوام وقتی سرعت صفر شد یک آلرت بده که دو گزینه داشته باشه .
مشکلی تو ساختش نیست ولی اطلاعات gps مدام در حال بروز رسانیه . یعنی مدام وقتی سرعت به صفر میرسه شروع می کنه به آلرت دادن و پنچره روی پنجره باز میشه ! چطور میشه این مشکل و رفع کرد.؟ ممنون میشم اگر جواب بدین اساتید.
در ضمن توی شرط قبل از اجرای این آلرت از دستور if (speed==0) استفاده کردم و می خواستم شرط باز بودن آلرت و بهش اضافه کنم که نمیشه !
 
پاسخ

مشکل در alertdialog ، در برنامه اندروید

#2
سلام.
شما باید یک متغیر، مثلا با نام is_alertdialog_shown ، بسازید. که در ابتدا مقدار آن برابر 0 است.
شرط نمایش alertdialog را بر اساس این دو مورد تعیین کنید :

1- سرعت (speed) برابر 0 باشد       
و :
2- مقدار متغیر  is_alertdialog_shown  برابر 0 باشد

سپس وقتی این دو شرط برآورده شد، قبل از اجرای کدهای نمایش  alertdialog ، یک خط کد بنویسید که در آن، مقدار متغیر  is_alertdialog_shown برابر 1 قرار داده شود. بنابراین با یک بار نمایش  alertdialog ، دیگر نمایش داده نمی شود (زیرا دیگر متغیر is_alertdialog_shown  برابر 0 نیست).

در صورت تمایل، می توانید تعیین کنید که اگر کاربر پنجره  alertdialog را بست، دوباره متغیر  is_alertdialog_shown برابر 0 قرار داده شود.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط faded

مشکل در alertdialog ، در برنامه اندروید

#3
سلام ممنون از جوابتون.
من این کارو انجام دادم و کدهای من بصورت زیر شد ولی دو تا سوال دارم .

کد:
int is_alertdialog_shown=0;
public void onLocationChanged(Location location) {
String msg = "عرض:" + location.getLatitude() + " , طول :" + location.getLongitude();
Toast.makeText(this, msg ,Toast.LENGTH_SHORT).show();
TextView tvSpeed = (TextView) findViewById(R.id.tv_speed);
tvSpeed.setText("سرعت شما : "+ location.getSpeed());
float Speed=location.getSpeed();

if (Speed == 0.0 && is_alertdialog_shown==0) {

Vibrator v = (Vibrator)getSystemService(MainActivity.VIBRATOR_SERVICE);
v.vibrate(300);
long pattern={0,0};
v.vibrate(pattern,-1);
is_alertdialog_shown=1;
new AlertDialog.Builder(this)
.setTitle("پارک حودرو")
.setMessage("آیا می خواهید خودروی خود را پارک کنید؟")

خوب حالا میشه راهنمایی کنید که اگر کنسل زده شد بعد از 30 ثانیه دوباره همین پیغام نشون داده بشه . (این پیغام دارای دو حالت است ، بله و خیر)
و یک سوال اساسی دیگه اینکه چکار کنیم که اگر سرعت صفر شد بعد از مثلا 1 دقیقه این پیغام ظاهر بشه ؟؟؟؟ ممنون میشم اگر جواب بدین
پاسخ

مشکل در alertdialog ، در برنامه اندروید

#4
هر دو موردی که گفتید، نیاز به این دارد که بعد از یک مدت مشخص، یک سری کد اجرا شوند. بنابراین با کدهای ارائه شده در کلید زیر، مشکلتون حل میشه :

http://www.kelidestan.com/keys/keys.php?key=242

در اون مبحث، تعیین شده که بعد از چند ثانیه، کاربر وارد یک Activity جدید شود، اما شما می توانید کدهای خود را به جای کدهای ورود به Activity جدید بنویسید. با بررسی ساختار کدهای آن مبحث، متوجه منظورم می شوید.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط faded ، شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان