使用来自多个“编辑文本”的数据填充自定义列表视图

时间:2012-01-30 07:52:50

标签: android android-edittext custom-lists

所以我创建了一个包含3个EditTexts和两个按钮的表单," Ok"和"取消"

这是我的代码:

package com.examples.edtTxtCustomList;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;


public class InputPage extends Activity implements OnClickListener{

    private Button btnGo,btnCancel;
    EditText et_name,et_email,et_phone;

    List<String> data = new ArrayList<String>();


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.custom_list_view);


        et_name = (EditText) findViewById(R.id.et_name);
        et_email =(EditText)findViewById(R.id.et_email);
        et_phone = (EditText)findViewById(R.id.et_phno);
        btnGo = (Button) findViewById(R.id.btn_ok);

        btnGo.setOnClickListener(this);
        data.add("Welcome");

    }

        @Override
        public void onClick(View src) {

            String nm=et_name.getText().toString();
            String no = et_email.getText().toString();
            String mail= et_phone.getText().toString();

            Intent i = new Intent(this,CustomLayout.class);

            i.putExtra("name", nm);
            i.putExtra("email", mail);
            i.putExtra("phone", no);
            startActivity(i);

        }    
}   `

这是我的表格的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TextView
            android:id="@+id/tv_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="5dip"
            android:layout_marginTop="20dip"
            android:layout_marginBottom="10dip"
            android:text="Name :"
            android:textSize="20dip"/>

        <EditText 
            android:id="@+id/et_name"
            android:layout_width="230dip"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/tv_name"
            android:layout_alignTop="@id/tv_name"
            android:layout_marginBottom="10dip"
            android:layout_marginLeft="8dip"
            android:textSize="15dip"/>

        <TextView
            android:id="@+id/tv_email"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="5dip"
            android:layout_marginTop="20dip"
            android:layout_marginBottom="10dip"
            android:layout_below="@id/tv_name"
            android:text="E-Mail :"
            android:textSize="20dip"/>

        <EditText 
            android:id="@+id/et_email"
            android:layout_width="230dip"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/tv_email"
            android:layout_alignTop="@id/tv_email"
            android:layout_below="@id/et_name"
            android:inputType="textEmailAddress"
            android:layout_marginLeft="6dip"
            android:layout_marginBottom="10dip"
            android:textSize="15dip"/>

        <TextView
            android:id="@+id/tv_phno"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="5dip"
            android:layout_marginTop="20dip"
            android:layout_marginBottom="10dip"
            android:layout_below="@id/tv_email"
            android:text="Phone :"
            android:textSize="20dip"/>

        <EditText 
            android:id="@+id/et_phno"
            android:layout_width="230dip"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/tv_phno"
            android:layout_alignTop="@id/tv_phno"
            android:layout_below="@id/et_email"
            android:inputType="phone"
            android:layout_marginLeft="5dip"
            android:layout_marginBottom="10dip"
            android:textSize="15dip"/>

        <Button 
            android:id="@+id/btn_ok"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@id/et_phno"
            android:layout_marginTop="30dip"
            android:layout_marginLeft="50dip"
            android:text="OK"
            android:textSize="20dip"/>

        <Button 
            android:id="@+id/btn_cancel"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_below="@id/et_phno"
            android:layout_marginTop="30dip"
            android:layout_marginRight="50dip"
            android:text="Cancel"
            android:textSize="20dip"/>      
    </RelativeLayout>
</LinearLayout>

现在我想要的是,当我点击&#34; OK&#34;所有三个编辑文本中的所有数据都应显示在customlistview中。

我尝试按如下方式制作动态列表视图:

package com.example.customlist;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.SimpleAdapter;


public class CustomListLayoutActivity extends ListActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.custom_list_view);

        SimpleAdapter adapter = new SimpleAdapter(this,list,R.layout.custom_row_layout,
                new String[] {"Name","Email","Phone"},
                new int[] {R.id.text1,R.id.text2, R.id.text3}
                );
        populateList();
        setListAdapter(adapter);
    }

    static final ArrayList<HashMap<String,String>> list = 
        new ArrayList<HashMap<String,String>>(); 

    private void populateList() {
        HashMap<String,String> temp = new HashMap<String,String>();
        temp.put("Name","Anurag Kulkarni");
        temp.put("Email", "kulkarni_anurag@yahoo.com");
        temp.put("Phone", "+91-9904475805");
        list.add(temp);
        HashMap<String,String> temp1 = new HashMap<String,String>();
        temp1.put("Name","Rahul Shah");
        temp1.put("Email", "rahul201290@gmail.com");
        temp1.put("Phone", "+91-9898434909");
        list.add(temp1);
        HashMap<String,String> temp2 = new HashMap<String,String>();
        temp2.put("Name","Pratik Thakkar");
        temp2.put("Email", "iamcool@cooldood.com");
        temp2.put("Phone", "+91-8539524925");
        list.add(temp2);
        HashMap<String,String> temp3 = new HashMap<String,String>();
        temp3.put("Name","Utsav Patel");
        temp3.put("Email", "patel_in_a_hotel@dhokla.com");
        temp3.put("Phone","+91-9843500999");
        list.add(temp3);
        HashMap<String,String> temp4 = new HashMap<String,String>();
        temp4.put("Name","Karan Mohan");
        temp4.put("Email", "masala_dosa@sankalp.co.in");
        temp4.put("Phone", "+91-9944843974");
        list.add(temp4);

    }
}
你能帮帮我吗?我仍在学习基础知识,所以任何帮助都会得到满足。

感谢。

1 个答案:

答案 0 :(得分:0)

正如我的另一篇文章......

  

每当你想用ListView中的视图进行处理时   需要创建一个可以处理逻辑的自定义适配器   实现并在必要时将该信息传递给视图。

     

自定义adater会逐个对视图进行充气,这可能是   动态的固定。

示例:

Link 1