بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
گرفتن Text شمارشگر زمان از TextView
سلام
میخوام 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)
پاسخ به سوال
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];
کد بالا میاد از کارکتر ":" رشته رو میشکونه و توی آرایه میریزه.
حالا از این رشته ها برای مقایسه استفاده کن
مشکل اصلی رو پیدا کردم..
زمان شمار من کار میکنه ولی نمیتونم مقدار تکست مورد نظرمو ازش بگیرم
اشتباه من اینه که نباید کاری به TextView داشته باشم.
بلکه باید اون مقداری رو که میخوام مقایسه کنم رو از تایمرم که از کلاس Runnable رو بگیرم.
همه متغیراشم چک کردم ولی نشد.
شما یه نگاهی به متغیرهای داخل متد run بکنید ببینید چکار دیگه باید انجام بدم؟؟ (10 سال پیش)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .