2015-03-13 61 views
1

我特地在網上獲取一個值,但我還沒有找到擺脫TextView的從一個TextView

錯誤是該值的方式:無法解析方法的valueOf()

time_left = timeLeftNumber.valueOf() - 1; 

package com.example.sensational.timetopress; 

import android.os.CountDownTimer; 
import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.TextView; 


public class press_screen extends ActionBarActivity { 

    private int time_left; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_press_screen); 

    } 

    //Create Timer 


    CountDownTimer timer = new CountDownTimer(30000, 1000) { 
     @Override 
     public void onTick(long millisUntilFinished) { 
      TextView amountOfTaps = (TextView) findViewById(R.id.amount_of_taps); 
      TextView timeLeftNumber = (TextView) findViewById(R.id.time_left_number_tv); 
      time_left = timeLeftNumber.valueOf() - 1; 
      timeLeftNumber.setText(); 
     } 

     @Override 
     public void onFinish() { 

     } 
    }; 
+0

什麼是錯誤? – Lal 2015-03-13 18:03:54

+0

@Lal我只是把它放在 – Celeriac 2015-03-13 18:06:16

回答

0

TextView沒有valueOf()方法。您可以進行以下操作:

TextView amountOfTaps = (TextView) findViewById(R.id.amount_of_taps); 
    TextView timeLeftNumber = (TextView) findViewById(R.id.time_left_number_tv); 
    time_left = Integer.valueOf(timeLeftNumber.getText().toString()) - 1; 
    timeLeftNumber.setText(); 
0

只要使用方法getText()它返回一個CharSequence

time_left = timeLeftNumber.getText().toString(); 

爲了得到一個Integer值使用

time_left = parseInt(timeLeftNumber.getText().toString(), 10) -1; 

因爲它可能會拋出一個NumberFormatException(最終版):

try { 
    time_left = parseInt(timeLeftNumber.getText().toString(), 10) -1; 

} catch (NumberFormatException e) { 
    // handle invalid numbers; set reasonable default value 
    time_left = 0; 
} 
+0

以上我這樣做,但我想 - 1的結果。我做time_left = timeLeftNumber.getText()。toString() - 1;但它輸出運算符' - '不能應用於java.lang.String @Trinimon – Celeriac 2015-03-13 18:08:37

+0

@SexyBeast:對不起,我沒有完全準備好:第三個版本是你需要的:) – Trinimon 2015-03-13 18:11:42

0

你需要做的:

TIME_LEFT =的Integer.parseInt(timeLeftNumber.getText()的toString()) - 1;

0

TextView獲得價值,你應該使用getText()方法。它返回CharSequence,可能很容易地改變,以String,然後你必須轉換得到的值來詮釋這樣

time_left = Integer.parseInt(timeLeftNumber.getText().toString()

這種方法可能會拋出NumberFormatException的,如果輸入的文本是不是一個數字,所以你應該裏面把這個調用try-catch塊。