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 {
// }
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则应该调用