您的位置:首页 > 其它

ListView中嵌套EditText,直接在EditText输入,需要注意几点

2012-09-27 10:49 204 查看
ListView中嵌套EditText,一般情况下点击EditText获得焦点,输入内容,当item很多,需要滑屏时,页面会出现混乱。

避免混乱需要注意几点。

首先,在androidManifest.xml文件中修改ListView所在Activity的属性 android:windowSoftInputMode="adjustPan"

其次,在所写的Adapter的getView中,如果用到了ViewHolder(即将getView布局中需要用到的view放到一个ViewHolder对象中),不要出现如下红色代码部分

@Override

public View getView(final int position, View convertView, ViewGroup parent) {

View view = convertView;

final ViewHolder holder;

// if (view == null) {

view = mLayoutInflater.inflate(

R.layout.布局文件, null);

// } else {

// holder = (ViewHolder) view.getTag();

// }

view.setTag(holder);

return view;

}

在getView中 EditText应该调用其addTextChangedListener方法,代码如下

holder.EditText对象.addTextChangedListener(new TextWatcher() {

@Override

public void onTextChanged(CharSequence s, int start, int before, int count) {

// TODO Auto-generated method stub

}

@Override

public void beforeTextChanged(CharSequence s, int start, int count,

int after) {

// TODO Auto-generated method stub

}

@Override

public void afterTextChanged(Editable s) {

此处即监听EditText输入

String input= s.toString();

if(!TextUtils.isEmpty(input)){

}

}

});

另外需要注意一点,getView和Activity中Adapter实例中牵扯到EditText的地方,都不要调用notifyDataSetChanged()。其他View如Button则应该调用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: