读取xml文件让其信息在listView上显示,并且listView上的每一条都能修改用EditText

读取文件略:

对与listView要重写一个自己的adapter,其中edittext要设置OnTouch监听及TextWatcher来获取更改后的值

public View getView(final int position,View convertView,ViewGroup parent) {
			//TODO Auto-generated method stub
			//取得layout
			LayoutInflater factory = LayoutInflater.from(this.context);
			View view =factory.inflate(R.layout.qw_appserver_item,null);
			
			HashMap map = data.get(position);
			tv = (TextView)view.findViewById(R.id.qw_appserver_textview);
			//设置值
			tv.setText((String)map.get("id"));
			et = (EditText)view.findViewById(R.id.qw_appserver_editview);
			et.setText((String)map.get("value"));
			et.setTag(position);
			//设置OnTouchListener监听,判断是否取到了当前EditText的焦点
			et.setOnTouchListener(new OnTouchListener() {

				@Override
				public boolean onTouch(View v,MotionEvent event) {
					System.out.println("--et ontouchlis---");
					if (event.getAction() == MotionEvent.ACTION_UP) {
						index = (Integer) v.getTag();
						System.out.println("--et index---"+index);
					}
					return false;
				}
			});
			//失去焦点
			et.clearFocus();
			if (index != -1 && index == position) {
				//获取焦点
				et.requestFocus();
			}
			
			//内部类,当editText的值改变时把值取到放到对应的list上,
			class MyTextWatcher implements TextWatcher {
				public MyTextWatcher() {
				}

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

				@Override
				public void beforeTextChanged(CharSequence s,int count,int after) {
				}

				@Override
				public void afterTextChanged(Editable s) {
					if(index != -1 && index == position){
						if (s != null && !"".equals(s.toString())) {
							//data数据源,能在activity中取到变化过的data的值
							data.get(index).put("value",s.toString());// 当EditText数据发生改变的时候存到data变量中
							//System.out.println("--s.tostring--"+s.toString()+"  position:"+index);
						}
					}else{
						if (s != null && !"".equals(s.toString())) {
							int position = (Integer) et.getTag();
							data.get(position).put("value",s.toString());// 当EditText数据发生改变的时候存到data变量中
							//System.out.println("--s.tostring--"+s.toString()+"  position:"+position);
						}
					}
				}
			}
			et.addTextChangedListener(new MyTextWatcher());
		return view;
	}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇