Populating Custom List View with data from multiple Edit Texts

687 Views Asked by At

So I made a form with 3 EditTexts and two Buttons, "Ok" and "Cancel"

Here's my Code for it:

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);

        }    
}   `

And here's the XML file of my form:

<?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>

now what I want is,when i click on "OK" all the data from all three of the edit texts should be displayed in the customlistview.

I tried to make a dynamic listview as follows:

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", "[email protected]");
        temp.put("Phone", "+91-9904475805");
        list.add(temp);
        HashMap<String,String> temp1 = new HashMap<String,String>();
        temp1.put("Name","Rahul Shah");
        temp1.put("Email", "[email protected]");
        temp1.put("Phone", "+91-9898434909");
        list.add(temp1);
        HashMap<String,String> temp2 = new HashMap<String,String>();
        temp2.put("Name","Pratik Thakkar");
        temp2.put("Email", "[email protected]");
        temp2.put("Phone", "+91-8539524925");
        list.add(temp2);
        HashMap<String,String> temp3 = new HashMap<String,String>();
        temp3.put("Name","Utsav Patel");
        temp3.put("Email", "[email protected]");
        temp3.put("Phone","+91-9843500999");
        list.add(temp3);
        HashMap<String,String> temp4 = new HashMap<String,String>();
        temp4.put("Name","Karan Mohan");
        temp4.put("Email", "[email protected]");
        temp4.put("Phone", "+91-9944843974");
        list.add(temp4);

    }
}

Can you please help me with it? I am still learning the basics,so any help would be appriciated.

Thanks.

1

There are 1 best solutions below

0
On

As in another post of mine...

Whenever you want to do processing with the views in a ListView you need to create a custom adapter that will handle your logic implementation and pass that information to the views as necessary.

A custom adater would inflate the views piece by piece, this can be dynamic of fixed.

Example:

Link 1