آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

mosafer  10 سال پیش  10 سال پیش
0 0

سلام

میخوام 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);

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









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

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

 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)

 

 

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

   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 سال پیش
+2 0

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

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

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

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

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

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

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