Android 如何从listview的所有edittext字段中获取值

Android 如何从listview的所有edittext字段中获取值,android,listview,android-edittext,adaptor,Android,Listview,Android Edittext,Adaptor,我想在按下back时获取所有文本字段的值 有时给出正确的值,有时给出log cat消息: 08-10 11:41:48.540: D/list Item No0=(1127): 1 08-10 11:41:48.540: D/list Item No1=(1127): 2 08-10 11:41:48.540: D/list Item No2=(1127): 1 我刚刚不知道如何从所有edittext字段中获取值请帮助 EditTextActivity.java import java.uti

我想在按下back时获取所有文本字段的值

有时给出正确的值,有时给出log cat消息:

08-10 11:41:48.540: D/list Item No0=(1127): 1
08-10 11:41:48.540: D/list Item No1=(1127): 2
08-10 11:41:48.540: D/list Item No2=(1127): 1
我刚刚不知道如何从所有edittext字段中获取值请帮助

EditTextActivity.java

import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import pl.looksok.listviewdemo.EditTextAdaptor;

public class EditTextActivity extends Activity {

    ArrayList<String> Fields;
    ArrayList<String> Values; 

    ListView atomPaysListView;

    private EditTextAdaptor adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);

        Fields = new ArrayList<String>();
        Fields.add("Name");
        Fields.add("Phone");
        Fields.add("Mobile");
        Fields.add("Email");
        Values = new ArrayList<String>();
        Values.add("");
        Values.add("");
        Values.add("");
        Values.add("");
        Button Get = (Button) findViewById(R.id.UD_Done);
        setupListViewAdapter();
        Get.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                ArrayList<String> nValues  = adapter.getList();

                for(int i=0 ; i<4; i++){


                    Log.d("list Item No"+i+"=",nValues.get(i));


                }

            }
        });


    }


    private void setupListViewAdapter() {
        adapter = new EditTextAdaptor(EditTextActivity.this, R.layout.atom_pay_list_item,Fields, Values);
        atomPaysListView = (ListView)findViewById(R.id.list);
        atomPaysListView.setAdapter(adapter);


    }


}
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

    public class MainActivity extends ActionBarActivity {

EditText edit1,edit2,edit3;
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    edit1 = (EditText) findViewById(R.id.editText1);
    edit2 = (EditText) findViewById(R.id.editText2);
    edit3 = (EditText) findViewById(R.id.editText3);

    list = (ListView) findViewById(R.id.listView1);

    //default values for listview
    String[] defaultlist = {"Pune", "Gurgaon", "Bangaluru"};

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), 
            android.R.layout.simple_list_item_1, defaultlist);

    // Setting the adapter on mDrawerList
    list.setAdapter(adapter);

    buttonpress();
}

public void buttonpress()
{
    Button btn = (Button) findViewById(R.id.button1);
    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String newlist[] = new String[3];
            newlist[0] = edit1.getText().toString();
            newlist[1] = edit2.getText().toString();
            newlist[2] = edit3.getText().toString();

            ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), 
                    android.R.layout.simple_list_item_1, newlist);

            // Setting the adapter on mDrawerList
            list.setAdapter(adapter);
        }
    });
}
import java.util.ArrayList;
导入android.app.Activity;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
导入android.widget.ListView;
导入pl.looksok.listviewdemo.EditTextAdapter;
公共类EditTextActivity扩展了活动{
阵列列表字段;
数组列表值;
ListView-atomPaysListView;
专用适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u list\u视图);
字段=新的ArrayList();
字段。添加(“名称”);
字段。添加(“电话”);
字段。添加(“移动”);
字段。添加(“电子邮件”);
值=新的ArrayList();
值。添加(“”);
值。添加(“”);
值。添加(“”);
值。添加(“”);
按钮Get=(按钮)findViewById(R.id.UD\u Done);
setupListViewAdapter();
Get.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
ArrayList nValues=adapter.getList();

对于(int i=0;i请查看以下工作代码:

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.edittexttolist.MainActivity"
tools:ignore="MergeRootFrame" >

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10" >

    <requestFocus />
</EditText>

<EditText
    android:id="@+id/editText2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10" />

<EditText
    android:id="@+id/editText3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="Change List" />

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>

MainActivity.java

import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import pl.looksok.listviewdemo.EditTextAdaptor;

public class EditTextActivity extends Activity {

    ArrayList<String> Fields;
    ArrayList<String> Values; 

    ListView atomPaysListView;

    private EditTextAdaptor adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);

        Fields = new ArrayList<String>();
        Fields.add("Name");
        Fields.add("Phone");
        Fields.add("Mobile");
        Fields.add("Email");
        Values = new ArrayList<String>();
        Values.add("");
        Values.add("");
        Values.add("");
        Values.add("");
        Button Get = (Button) findViewById(R.id.UD_Done);
        setupListViewAdapter();
        Get.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                ArrayList<String> nValues  = adapter.getList();

                for(int i=0 ; i<4; i++){


                    Log.d("list Item No"+i+"=",nValues.get(i));


                }

            }
        });


    }


    private void setupListViewAdapter() {
        adapter = new EditTextAdaptor(EditTextActivity.this, R.layout.atom_pay_list_item,Fields, Values);
        atomPaysListView = (ListView)findViewById(R.id.list);
        atomPaysListView.setAdapter(adapter);


    }


}
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

    public class MainActivity extends ActionBarActivity {

EditText edit1,edit2,edit3;
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    edit1 = (EditText) findViewById(R.id.editText1);
    edit2 = (EditText) findViewById(R.id.editText2);
    edit3 = (EditText) findViewById(R.id.editText3);

    list = (ListView) findViewById(R.id.listView1);

    //default values for listview
    String[] defaultlist = {"Pune", "Gurgaon", "Bangaluru"};

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), 
            android.R.layout.simple_list_item_1, defaultlist);

    // Setting the adapter on mDrawerList
    list.setAdapter(adapter);

    buttonpress();
}

public void buttonpress()
{
    Button btn = (Button) findViewById(R.id.button1);
    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String newlist[] = new String[3];
            newlist[0] = edit1.getText().toString();
            newlist[1] = edit2.getText().toString();
            newlist[2] = edit3.getText().toString();

            ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), 
                    android.R.layout.simple_list_item_1, newlist);

            // Setting the adapter on mDrawerList
            list.setAdapter(adapter);
        }
    });
}
导入android.os.Bundle;
导入android.support.v7.app.ActionBarActivity;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.ListView;
公共类MainActivity扩展了ActionBarActivity{
编辑文本编辑1、编辑2、编辑3;
列表视图列表;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1=(EditText)findViewById(R.id.editText1);
edit2=(EditText)findViewById(R.id.editText2);
edit3=(EditText)findViewById(R.id.editText3);
列表=(ListView)findViewById(R.id.listView1);
//listview的默认值
字符串[]defaultlist={“Pune”、“Gurgaon”、“Bangaluru”};
ArrayAdapter=新的ArrayAdapter(getBaseContext(),
android.R.layout.simple_list_item_1,defaultlist);
//在mDrawerList上设置适配器
list.setAdapter(适配器);
按键();
}
公共无效按钮按()
{
按钮btn=(按钮)findViewById(R.id.button1);
btn.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
字符串newlist[]=新字符串[3];
newlist[0]=edit1.getText().toString();
newlist[1]=edit2.getText().toString();
newlist[2]=edit3.getText().toString();
ArrayAdapter=新的ArrayAdapter(getBaseContext(),
android.R.layout.simple_list_item_1,newlist);
//在mDrawerList上设置适配器
list.setAdapter(适配器);
}
});
}

我认为使用
ListView
显示许多
EditText
是个坏主意,例如:

如果您制作了一个很长的列表,并首先聚焦于
EditText
,然后开始滚动,视图将在其他行项目中重复使用,并将失去焦点

如果只有几个字段,只需将它们添加到任何
视图组中的活动\u listview.xml,问题就会少一些


另外,当
convertView!=null
时,添加
TextWatcher
,这样您将得到一些不“监视”的字段.

我知道如何从第二个活动传递数据,但这只是一个活动,亲爱的。是否要使用同一页上的edittext中的值填充listview。?是的,使用保存的值填充,并在按buton时获得更新的新值。我可以给您直接使用listview显示edittext数据的代码吗?..........代替内部的一系列文本视图吗listview..如asylume所述..确定它是否可以从所有edittext中提取数据:)是的,由于docus问题,在从字段中删除值之前,我添加了文本监视程序。我在没有listview的情况下成功地完成了此操作,但我希望在列表中执行此操作以获得更好的外观如果此列表很大,非常大,您将获得更好的性能;)否则,这不值得努力,因为它可能会导致许多错误。是的,我目前正在使用对话框来执行此操作。但我想在按下按钮时从编辑文本中获取所有值。这看起来很简单,但不知道我犯了什么错:(
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

    public class MainActivity extends ActionBarActivity {

EditText edit1,edit2,edit3;
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    edit1 = (EditText) findViewById(R.id.editText1);
    edit2 = (EditText) findViewById(R.id.editText2);
    edit3 = (EditText) findViewById(R.id.editText3);

    list = (ListView) findViewById(R.id.listView1);

    //default values for listview
    String[] defaultlist = {"Pune", "Gurgaon", "Bangaluru"};

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), 
            android.R.layout.simple_list_item_1, defaultlist);

    // Setting the adapter on mDrawerList
    list.setAdapter(adapter);

    buttonpress();
}

public void buttonpress()
{
    Button btn = (Button) findViewById(R.id.button1);
    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String newlist[] = new String[3];
            newlist[0] = edit1.getText().toString();
            newlist[1] = edit2.getText().toString();
            newlist[2] = edit3.getText().toString();

            ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), 
                    android.R.layout.simple_list_item_1, newlist);

            // Setting the adapter on mDrawerList
            list.setAdapter(adapter);
        }
    });
}