Android 如何从listview的所有edittext字段中获取值
我想在按下back时获取所有文本字段的值 有时给出正确的值,有时给出log cat消息: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
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);
}
});
}