【问题标题】:getting data from edittext placed in listview从列表视图中的edittext获取数据
【发布时间】:2011-01-24 10:49:53
【问题描述】:

我使用持有人创建了一个带有 textview 和 edittext 的列表......它看起来像

文本视图编辑文本

文本视图编辑文本

文本视图编辑文本

                       [button]

但我无法从每个 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>

【问题讨论】:

  • 请尽快提供帮助
  • 顺便说一句。您应该接受有解决方案的问题,以使人们想帮助您!这是一种欣赏。

标签: android


【解决方案1】:

您可以做的一种方法是在 hasmap 或任何集合中获取整个视图,并在需要时获取位置和检索。

【讨论】:

    【解决方案2】:

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

    Change ListView background - strange behaviour

    我认为您缺少更新您的参考资料,例如:

    // we must update the object's reference
    holder.data = getItem(position);
    

    在这种情况下,项目在列表中,getItem(position); 正在返回我实际上想要在特定行中更新的对象。 开箱即用的 listView 回收视图,这意味着滚动时消失的视图被重用于变得可见的视图。为了显示正确的数据,您必须更新您的参考资料。

    你明白我的意思吗?还是我应该用其他方式解释?

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2013-02-22
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多