بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

گرفتن Text شمارشگر زمان از TextView

مدیریت گفتگو
mosafer 10 سال پیش
آخرین تغییر: 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);

با این کد میخوام مقایسمو انجام بدم









 

نظرات

mosafer 10 سال پیش
لطفا راهنماییم کنید که خیلی بهش محتاجم..
mosafer 10 سال پیش
لطفا راهنماییم کنید که خیلی بهش محتاجم..
Mseif 10 سال پیش
string.equals.trim("00:05")
Mseif 10 سال پیش
یه Trim اضافه کن ببین درست میشه string.equals.trim("00:05")
FSR 10 سال پیش
به جای مقایسه متنی مقایسه ی عددی کن !
mosafer 10 سال پیش
نه نمیشه.. چکار کنم... خب میشه با کد نشون بدی!!؟

پاسخ‌ها 3

mosafer 10 سال پیش

اینم خطایی که میده...

 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)

 

 

نظرات

بهروز 10 سال پیش
چرا توی کدت نوشتی string.equals("00:05")؟ باید مقدار تکست ویو رو بگیری و بریزی توی یک رشته مثلا my_string بعد بنویسیmy_string.equals("00:05")
mosafer 10 سال پیش
خب منم همین کارو کردم ولی باز ایراد میگیره... نمیدونم واسه چی ایراد میگیره ..!!!!!
بهروز 10 سال پیش
خب شما توی کدت نوشتی string این چی هست اصلا؟.الان متغییری که رشته رو از تکست ویو بگیره چی هست؟اسمش چیه؟
mosafer 10 سال پیش

   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 : "); }


نظرات

بهروز 10 سال پیش

خب دوست عزیز شما اشتباه کردید توی کد بالا و توی convert  شدن رشته به int کرش میکنه..

شما فرمت رشته اتون اینه aa:bb .پس بهتره اول دقیقه و ثانیه رو از هم جدا کنی بعد خواستی ازش استفاده کنی.

  String[] min_secound = texttimer.getText().tostring().split(":");
String minutes =
min_secound[0];
String seconds =
min_secound[1];

کد بالا میاد از کارکتر ":" رشته رو میشکونه و توی آرایه میریزه.

حالا از این رشته ها برای مقایسه استفاده کن

نظرات

mosafer 10 سال پیش
آقا بهروز بازم جواب نگرفتم.. البته خطا برطرف شد. خواستم بدونم که کلاس Runnable رو توی کلاس نوشتم نه در متد onCreate آیا ایراد از این نیست؟؟؟؟
mosafer 10 سال پیش
مشکل اصلی رو پیدا کردم.. زمان شمار من کار میکنه ولی نمیتونم مقدار تکست مورد نظرمو ازش بگیرم اشتباه من اینه که نباید کاری به TextView داشته باشم. بلکه باید اون مقداری رو که میخوام مقایسه کنم رو از تایمرم که از کلاس Runnable رو بگیرم. همه متغیراشم چک کردم ولی نشد. شما یه نگاهی به متغیرهای داخل متد run بکنید ببینید چکار دیگه باید انجام بدم؟؟
FSR 10 سال پیش
من که از اولش گفتم شما گوش نکردید !

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .