2
在NewTweetActivity.java,我有:添加文本监听器造成未发现异常
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.newtweet);
listenToChange();
}
public void listenToChange(){
TextView cEditText = (TextView) findViewById(R.id.tweetCountTextView);
EditText tView = (EditText) findViewById(R.id.tweetComposerEditText);
tView.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
int len = (140 - s.length());
cEditText.setText(len);
}
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
// TODO Auto-generated method stub
}
public void onTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
});
}
然而,它要求我声明cEditText作为最终,但是当我做,它无法加载newtweet布局。
如果我把里面的afterTextChanged
的cEditText声明,它加载的布局,但是当我触发afterTextChanged
(由EditText上键入),它会导致这样的:
07-08 20:44:27.054: E/AndroidRuntime(4417): FATAL EXCEPTION: main
07-08 20:44:27.054: E/AndroidRuntime(4417): android.content.res.Resources$NotFoundException: String resource ID #0x8b
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.content.res.Resources.getText(Resources.java:201)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.widget.TextView.setText(TextView.java:2911)
07-08 20:44:27.054: E/AndroidRuntime(4417): at com.jgnzapps.quark.NewTweetActivity$1.afterTextChanged(NewTweetActivity.java:31)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.widget.TextView.sendAfterTextChanged(TextView.java:6532)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:6720)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.text.SpannableStringBuilder.sendTextHasChanged(SpannableStringBuilder.java:897)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:353)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:269)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:432)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:409)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:28)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:654)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:415)
07-08 20:44:27.054: E/AndroidRuntime(4417): at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:318)
07-08 20:44:27.054: E/AndroidRuntime(4417): at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:75)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.os.Handler.dispatchMessage(Handler.java:99)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.os.Looper.loop(Looper.java:130)
07-08 20:44:27.054: E/AndroidRuntime(4417): at android.app.ActivityThread.main(ActivityThread.java:3694)
07-08 20:44:27.054: E/AndroidRuntime(4417): at java.lang.reflect.Method.invokeNative(Native Method)
07-08 20:44:27.054: E/AndroidRuntime(4417): at java.lang.reflect.Method.invoke(Method.java:507)
07-08 20:44:27.054: E/AndroidRuntime(4417): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
07-08 20:44:27.054: E/AndroidRuntime(4417): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
07-08 20:44:27.054: E/AndroidRuntime(4417): at dalvik.system.NativeStart.main(Native Method)
如果我称之为setText
方法的cEditText与一个字符串(例如“猫”),它的工作原理。
任何想法?
感谢 - 我一直在寻找一个len.toString()方法,已经从.NET去直去渣,并认为它需要转换! – svbnet 2012-07-08 09:25:32
int是一个基元,它不提供toString()。你也可以创建一个Integer(Wrapper类)并在那里调用toString()。 – MatF 2012-07-08 09:36:44
该死的!我刚才也犯了同样的错误。 – 2015-08-19 07:00:32