2013-09-10 30 views
0

调用的getText()这是我的代码的值设置为一个TextView无法在基本类型int

enter code here 

public void addHours(View view){ 
    final TextView mTextView = (TextView) findViewById(R.id.newHours_Value); 
    String hourValue = R.id.enterHours.getText().toint(); 
    mTextView.setText("hourValue"); 
} 

但R.id.enterHours.GetText()想出了一个错误

无法在原始类型上调用getText()int

请问我做错了什么。

+1

您是在基本类型int调用的getText()。可能是在'mTextView'上调用它 –

+0

相关:http://stackoverflow.com/questions/4953077/android-what-is-r-why-is-it-so-cryptic –

+0

看到这篇文章[Android:Can not invoke toString( )在原始类型int] [1] [1]:http://stackoverflow.com/questions/3028974/android-cannot-invoke-tostring-on-the-primitive-type-in​​t – Grmn

回答

4

R.id.enterHours 

返回int。这就是为什么当你初始化View你不喜欢它

TextView mTextView = (TextView) findViewById(R.id.newHours_Value); 

(TextView)其强制转换为TextView这样你就可以调用它的它的方法就像getText().toString()。所以,你可能想要的是

TextView hourValueTV = (TextView) findViewById*R.id.enterHours); //assuming its a TextView and not EditText 
String hourValue = hourValueTV.getText().toString(); 
0

添加到什么codeMagic说:

在这种情况下,你应该设置文本与字符串,而不是值(“hourValue”的变量名(参考),除非你希望你的文本是hourValue)。

应该

mTextView.setText(hourValue); 
+0

非常感谢所有,我确实注意到其他问题,但无法理解答案,我是android编程的新手 – Graham