当前位置: 代码迷 >> Android >> TextView组件的 组件实例名.getText().length()的值如何一直为13
  详细解决方案

TextView组件的 组件实例名.getText().length()的值如何一直为13

热度:138   发布时间:2016-04-28 04:55:34.0
求助:TextView组件的 组件实例名.getText().length()的值怎么一直为13
求助: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得到的值是什么
  相关解决方案