求助:TextView组件的 组件实例名.getText().length()的值怎么一直为13
问题出现在Main.java中尾部 注释部分 带 //???????????????????? 的地方
一直搞不明白 又不想忽略掉这个问题
main.xml 文件如下
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="请输入查询内容" />
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="www.whu.edu.cn" />
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Main.java 文件如下
-------------------------------------------------------------------------------------------------------------
package com.example.ch06focuschange;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.view.*;
public class MainActivity extends Activity {
private EditText editText1; //文本输入框
private TextView textView1; //标签标签
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText1=(EditText)this.findViewById(R.id.editText1); //获得文本输入框组件
textView1=(TextView)this.findViewById(R.id.textView1); //获得文本标签组件
editText1.setOnClickListener(new View.OnClickListener() { //使文本输入框清零
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
((EditText)v).setText(""); //等价于 editText1.setText("");
}
});
editText1.setOnFocusChangeListener(new View.OnFocusChangeListener() { //文本输入框获得 or 失去焦点 监听
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(v.getId()==editText1.getId()){ //判断触发事件的组件
if(hasFocus){
textView1.setText("editText1获得焦点");
}
else{
if(textView1.getText().length()>0){ //textView1.getText().length()的值一直为13??
textView1.setText("editText1失去焦点,输入内容非空:"+editText1.getText().toString());
}
else{
//??????????????????????????
//一直无法执行下面的语句,textView1.getText().length()的值一直为13
textView1.setText(textView1.getText().length()+
"editText1失去焦点,输入内容为空,非法。");
}
}
}
}
});
}
}
------解决方案--------------------
if(hasFocus){
textView1.setText("editText1获得焦点");
}
else{
if(textView1.getText().length()>0){ //textView1.getText().length()的值一直为13??
textView1.setText("editText1失去焦点,输入内容非空:"+editText1.getText().toString());
}
仔细检查这个条件判断。
------解决方案--------------------
如楼上所说,估计是hasFocus是true,赋值了textview,正好那段话就是13的长度。
------解决方案--------------------
debug看下textview。getText得到的值是什么