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则应该调用
避免混乱需要注意几点。
首先,在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则应该调用
相关文章推荐
- 在ListView中嵌套EditText,EditText内容过多需要滚动的问题
- 使用EditText+ListView并结合TextWatcher实现输入关键字筛选数据
- 关于listview嵌套edittext显示错位的解决方法
- 使用EditText+ListView并结合TextWatcher实现输入关键字筛选数据
- 使用EditText+ListView并结合TextWatcher实现输入关键字筛选数据
- 获取listview中每个条目editText输入的内容
- 使用EditText+ListView并结合TextWatcher实现输入关键字筛选数据
- 学习笔记-Android之ListView随EditText输入内容动态改变
- 安卓高手之路之图形系统【5】安卓ListView和EditText配合使用时的注意事项。
- ListView、ScrollView中嵌套的EditText不能滚动的问题
- 在edittext中输入内容,动态匹配更新 listview的数据(EditText中边输入,listView边更新)
- listview上的条目edittext 如何可以随意的输入文字
- Android ListView的Item中带EditText的全输入和全取消输入
- ListView中嵌套的EditText不能滚动的问题
- Android ListView嵌套EditText错位的解决方法
- ListView的listitem为EditText无法输入内容问题
- 【ANDROID】EditText需要指定默认输入类型
- ExpandableListView中包含EditText 时不能输入内容
- ListView嵌套两个EditText相关显示问题
- 关于 ScrollView 中嵌套 EditText,输入多行会使整体滚动的问题