چرا توی کدت نوشتی string.equals("00:05")؟ باید مقدار تکست ویو رو بگیری و بریزی توی یک رشته مثلا my_string بعد بنویسیmy_string.equals("00:05")
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
گرفتن Text شمارشگر زمان از TextView
مدیریت گفتگو
آخرین تغییر: 10 سال پیش
سلام
میخوام Text شمارشگر زمان رو از TextView بگیرم و بعد با مثلا "00:05" مقایسه کنم و در صورت درست بودن شرطم عملیات دلخواهم رو انجام بده...
هر کاری میکنم خطاا میده..
اینم کد:
private Runnable updateTimerThread = new Runnable() {
@Override
public void run() {
timeInMilliseconds = SystemClock.uptimeMillis() - startTime;
updatedTime = timeSwapBuff + timeInMilliseconds;
int secs = (int) (updatedTime / 1000);
int mins = secs / 60;
secs = secs % 60;
//int milliseconds = (int) (updatedTime % 1000);
textTimer.setText(String.format("%02d", mins) + ":"
+ String.format("%02d", secs));
int counter = Integer.parseInt(textTimer.getText().toString());
customHandler.postDelayed(this, 0);
}
};
@Override
public void onClick(View arg0) {
if (arg0.getId() == R.id.btn_start) {
/******************************************************************* کلید شروع زمان ***/
startTime = SystemClock.uptimeMillis();
customHandler.postDelayed(updateTimerThread, 0);
}
if (arg0.getId() == R.id.btn_Pause) {
/******************************************************************** کلید ایست زمان ***/
timeSwapBuff += timeInMilliseconds;
customHandler.removeCallbacks(updateTimerThread);
}
if (string.equals("00:05")) {
Toast.makeText(ActivityAnalyze.this, "Send information in 15 minutes.", Toast.LENGTH_SHORT).show();
Send_15.setTextColor(Color.GREEN);
با این کد میخوام مقایسمو انجام بدم
پاسخها 3
اینم خطایی که میده...
05-05 18:02:07.977: E/AndroidRuntime(1694): FATAL EXCEPTION: main 05-05 18:02:07.977: E/AndroidRuntime(1694): java.lang.NumberFormatException: Invalid int: "00:00" 05-05 18:02:07.977: E/AndroidRuntime(1694): at java.lang.Integer.invalidInt(Integer.java:138) 05-05 18:02:07.977: E/AndroidRuntime(1694): at java.lang.Integer.parse(Integer.java:375) 05-05 18:02:07.977: E/AndroidRuntime(1694): at java.lang.Integer.parseInt(Integer.java:366) 05-05 18:02:07.977: E/AndroidRuntime(1694): at java.lang.Integer.parseInt(Integer.java:332) 05-05 18:02:07.977: E/AndroidRuntime(1694): at pack.coach.ActivityAnalyze$1.run(ActivityAnalyze.java:317) 05-05 18:02:07.977: E/AndroidRuntime(1694): at android.os.Handler.handleCallback(Handler.java:605) 05-05 18:02:07.977: E/AndroidRuntime(1694): at android.os.Handler.dispatchMessage(Handler.java:92) 05-05 18:02:07.977: E/AndroidRuntime(1694): at android.os.Looper.loop(Looper.java:137) 05-05 18:02:07.977: E/AndroidRuntime(1694): at android.app.ActivityThread.main(ActivityThread.java:4424) 05-05 18:02:07.977: E/AndroidRuntime(1694): at java.lang.reflect.Method.invokeNative(Native Method) 05-05 18:02:07.977: E/AndroidRuntime(1694): at java.lang.reflect.Method.invoke(Method.java:511) 05-05 18:02:07.977: E/AndroidRuntime(1694): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 05-05 18:02:07.977: E/AndroidRuntime(1694): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 05-05 18:02:07.977: E/AndroidRuntime(1694): at dalvik.system.NativeStart.main(Native Method)
نظرات
textTimer.setText(String.format("%02d", mins) + ":" + String.format("%02d", secs));
int counter = Integer.parseInt(textTimer.getText().toString());
حالا امدم توی متد oncreate این کارو کردم :
String string = String.valueOf(counter);
if (string.equals("00:05")) {
Toast.makeText(ActivityAnalyze.this, "Send information in 15 minutes.", Toast.LENGTH_SHORT).show();
Send_15.setTextColor(Color.GREEN);
Log.i("Logof", str1 + "mosafer : ");
}
نظرات
خب دوست عزیز شما اشتباه کردید توی کد بالا و توی convert شدن رشته به int کرش میکنه..
شما فرمت رشته اتون اینه aa:bb .پس بهتره اول دقیقه و ثانیه رو از هم جدا کنی بعد خواستی ازش استفاده کنی.
String[] min_secound = texttimer.getText().tostring().split(":");
String minutes =min_secound[0];
String seconds =min_secound[1];
کد بالا میاد از کارکتر ":" رشته رو میشکونه و توی آرایه میریزه.
حالا از این رشته ها برای مقایسه استفاده کن
نظرات
آقا بهروز بازم جواب نگرفتم..
البته خطا برطرف شد.
خواستم بدونم که کلاس Runnable رو توی کلاس نوشتم نه در متد onCreate آیا ایراد از این نیست؟؟؟؟
مشکل اصلی رو پیدا کردم..
زمان شمار من کار میکنه ولی نمیتونم مقدار تکست مورد نظرمو ازش بگیرم
اشتباه من اینه که نباید کاری به TextView داشته باشم.
بلکه باید اون مقداری رو که میخوام مقایسه کنم رو از تایمرم که از کلاس Runnable رو بگیرم.
همه متغیراشم چک کردم ولی نشد.
شما یه نگاهی به متغیرهای داخل متد run بکنید ببینید چکار دیگه باید انجام بدم؟؟
من که از اولش گفتم شما گوش نکردید !
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات