Hiiii,
I want to create an app which contains EditText & "Add" button...when user type country name in EditText n after clicking add button , country names should be added in ListView.
my problem is whenever i run app. country names are override in ListView, i refer this book but not found any solutions...Please help me.
My Code: Main XML file
Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".MainActivity"
android:background="#000000" >
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_centerHorizontal="true"
android:text="Country Names"
android:textColor="#ffffff"
/>
<EditText
android:id="@+id/et1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:layout_marginRight="15dp"
android:layout_marginLeft="36dp"
android:layout_marginTop="20dp"
android:layout_below="@id/tv1"
android:layout_centerHorizontal="true"
/>
<Button
android:id="@+id/b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ADD"
android:onClick="next"
android:layout_below="@id/et1"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"/>
</RelativeLayout>
another XML file for custom adapter
Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- <ListView
android:id="@+id/lv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/> -->
<TextView
android:id="@+id/tview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"/>
<Button
android:id="@+id/bb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Back"
android:onClick="back"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
Main Activity java file
Code:
package com.example.intent;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
EditText e1;
Intent i;
String str;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
e1 = (EditText)findViewById(R.id.et1);
Button bb = (Button)findViewById(R.id.b);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void next(View v)
{
str= e1.getText().toString();
i = new Intent(this,Next.class);
i.putExtra("country",str);
startActivity(i);
}
}
second activity
Code:
package com.example.intent;
import java.util.ArrayList;
import java.util.Set;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ListAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class Next extends ListActivity{
Intent i ;
ArrayList<String> aa = null;
private Custom_Adapter adap = null;
String country=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//setContentView(R.layout.nnext);
//ListView l = (ListView)findViewById(R.id.lv);
country= getIntent().getStringExtra("country");
aa = new ArrayList<String>();
aa.add(country);
adap = new Custom_Adapter(this,R.layout.nnext,aa);
if(aa!=null && aa.size()>0)
{
adap.notifyDataSetChanged();
//adap.add(aa.get(0));
}
adap.notifyDataSetChanged();
setListAdapter(this.adap);
//adap.notifyDataSetChanged();
//String[] array=aa.toArray(new String [aa.size()]);
//ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,array);
//adapter.add(country);
//adapter.notifyDataSetChanged();
//l.setAdapter(adap);
}
public void back(View v)
{
i =new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
}
}
custom adapter file:
Code:
package com.example.intent;
import java.util.ArrayList;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class Custom_Adapter extends ArrayAdapter<String> {
private Context appcontext = null;
private ArrayList<String> items = null;
TextView view;
public Custom_Adapter(Context context ,int id, ArrayList<String> items) {
super(context, id,items);
this.appcontext = context;
this.items= items;
// TODO Auto-generated constructor stub
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v = convertView;
if(v==null)
{
LayoutInflater li= (LayoutInflater)appcontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v =li.inflate(R.layout.nnext,null);
TextView view = (TextView)v.findViewById(R.id.tview);
view.setText(items.get(position));
}
return v;
//return super.getView(position, convertView, parent);
}
}