Android 从listview中的edittext获取数据

Android 从listview中的edittext获取数据,android,Android,我用文本视图创建了一个列表&使用holder编辑文本。。。看起来像 文本视图编辑文本 文本视图编辑文本 文本视图编辑文本 但我无法从每个Edittext获取数据&每当我向任何Edittext添加数据时,数据都会自动交换到其他Edittext,我无法控制它。我的需要是在单击单个按钮的同时将所有Edittext数据(动态给定)传输到哈希表或其他内容。。。有人能帮我吗。。要实现它。。。协助使用示例代码 这是我的src文件 package org.me.androidapplication40; im

我用文本视图创建了一个列表&使用holder编辑文本。。。看起来像

文本视图编辑文本 文本视图编辑文本 文本视图编辑文本 但我无法从每个Edittext获取数据&每当我向任何Edittext添加数据时,数据都会自动交换到其他Edittext,我无法控制它。我的需要是在单击单个按钮的同时将所有Edittext数据(动态给定)传输到哈希表或其他内容。。。有人能帮我吗。。要实现它。。。协助使用示例代码

这是我的src文件

package org.me.androidapplication40;

import android.app.Activity;
import android.os.Bundle;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

public class customlistview extends Activity {

 private static class EfficientAdapter extends BaseAdapter {
 private LayoutInflater mInflater;

 public EfficientAdapter(Context context) {
 mInflater = LayoutInflater.from(context);

 }

 public int getCount() {
 return country.length;
 }

 public Object getItem(int position) {
 return position;
 }

 public long getItemId(int position) {
 return position;
 }

 public View getView(int position, View convertView, ViewGroup parent) {
 ViewHolder holder;
 if (convertView == null) {
 convertView = mInflater.inflate(R.layout.listview,parent,false);
 holder = new ViewHolder();
 holder.text = (TextView) convertView.findViewById(R.id.TextView01);
 holder.text2 = (TextView) convertView.findViewById(R.id.TextView02);
 holder.txt=(EditText) convertView.findViewById(R.id.txtbox);

 convertView.setTag(holder);
 } else {
 holder = (ViewHolder) convertView.getTag();
 }

 holder.text.setText(curr[position]);
 holder.text2.setText(country[position]);
holder.txt.setText("");
 return convertView;
 }

 public class ViewHolder {
 TextView text;
 TextView text2;
 EditText txt;
 }
 }

 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 ListView l1 = (ListView) findViewById(R.id.ListView01);
 l1.setAdapter(new EfficientAdapter(this));

 }

 private static final String[] country = { "item1","item2","item3","item4","item5","item6"};
 private static final String[] curr = { "1","2","3","4","5","6"};

}

listview.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_height="wrap_content"
 android:gravity="left|center"
 android:layout_width="wrap_content"
 android:paddingBottom="5px"
 android:paddingTop="5px"
 android:paddingLeft="5px">
 <TextView android:id="@+id/TextView01"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:gravity="center"
 android:background="@drawable/bg"
 android:textColor="#FFFF00"
 android:text="hi"></TextView>
 <TextView android:text="@+id/TextView02"
 android:id="@+id/TextView02"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginLeft="10px"
 android:textColor="#0099CC"></TextView>
 <EditText
android:id="@+id/txtbox"
android:layout_width="63px"
android:layout_height="30px"
android:textSize="12sp"
android:layout_x="211px"
android:layout_y="13px"
>
</EditText>
</LinearLayout>


main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">
<TextView android:id="@+id/TextView01"
android:layout_height="wrap_content"
android:text="List of items"
android:textStyle="normal|bold"
android:gravity="center_vertical|center_horizontal"
android:layout_width="fill_parent"></TextView>
 <ListView android:id="@+id/ListView01"
 android:layout_height="wrap_content"
 android:layout_width="fill_parent">
 </ListView>
</LinearLayout>


一种方法是在hasmap或任何集合中获取整个视图持有者,并在需要时获取定位和检索。

一种方法是在hasmap或任何集合中获取整个视图持有者,并在需要时获取定位和检索。

我认为您的问题与我在这里遇到的问题类似:

我认为您没有更新您的参考资料,如:

// we must update the object's reference
holder.data = getItem(position);
在这种情况下,项目位于列表和
getItem(位置)中正在返回我实际想要在特定行中更新的对象。
listView开箱即用地回收视图,这意味着在滚动时消失的视图将被重新用于可见的视图。为了显示正确的数据,您必须更新参考资料

你明白我的意思吗?或者我应该用另一种方式解释


希望这有帮助

我认为你的问题与我在这里遇到的问题相似:

我认为您没有更新您的参考资料,如:

// we must update the object's reference
holder.data = getItem(position);
在这种情况下,项目位于列表和
getItem(位置)中正在返回我实际想要在特定行中更新的对象。
listView开箱即用地回收视图,这意味着在滚动时消失的视图将被重新用于可见的视图。为了显示正确的数据,您必须更新参考资料

你明白我的意思吗?或者我应该用另一种方式解释


希望这有帮助

请尽快提供帮助。你应该接受有解决方案的问题,以使人们愿意帮助你!这是一种感激之情。请尽快给予帮助。你应该接受有解决方案的问题,以使人们愿意帮助你!这是一种感激。