Dynamic addition and deletion of instance code within android ListView

  • 2020-05-09 19:20:46
  • OfStack

main.xml file:  


<?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="horizontal"   
     >  
     <LinearLayout  
       android:layout_width="fill_parent"  
      android:layout_height="fill_parent"     
      android:orientation="vertical"  
      >  
     <ListView   
      android:id="@+id/listview"      
      android:layout_width="fill_parent"  
      android:layout_height="wrap_content"  
     />  
     <Button   
      android:id="@+id/add"      
      android:layout_width="wrap_content"  
      android:layout_height="wrap_content"   
      android:text=" add "  
      />  
     </LinearLayout>  
 </LinearLayout> 

listview_item. xml file:

 <?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="wrap_content"  
     android:orientation="horizontal"  
     android:background="#000000"  
     android:padding="20dp"  
     >  
         
     <EditText  
     android:id="@+id/edit"  
     android:layout_width="200dp"  
     android:layout_height="wrap_content"  
     />  
     <Button  
     android:id="@+id/del"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"     
     android:text=" delete "  
     />  
         
 </LinearLayout> 

MainActivity .java


 package com.yyy.testandroid;  
     
import java.util.ArrayList;  
     
import android.app.Activity;  
import android.content.Context;  
import android.os.Bundle;  
import android.view.LayoutInflater;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.view.View.OnFocusChangeListener;  
import android.view.ViewGroup;  
 import android.widget.BaseAdapter;  
 import android.widget.Button;  
 import android.widget.EditText;  
 import android.widget.ListView;  
 import android.widget.TextView;  
     
 public class TestAndroidActivity extends Activity {  
     /** Called when the activity is first created. */  
         
     private Button button,add;  
     private TextView text;  
     private ListView listview;  
     public MyAdapter adapter;  
     @Override  
     public void onCreate(Bundle savedInstanceState) {  
         super.onCreate(savedInstanceState);  
         setContentView(R.layout.main);  
         listview = (ListView) findViewById(R.id.listview);  
         add = (Button) findViewById(R.id.add);  
         adapter = new MyAdapter(this);  
         listview.setAdapter(adapter);  
             
         add.setOnClickListener(new OnClickListener() {  
             @Override  
             public void onClick(View arg0) {  
                 // TODO Auto-generated method stub  
                 adapter.arr.add("");  
                 adapter.notifyDataSetChanged();  
             }  
         });  
     }  
 
     private class MyAdapter extends BaseAdapter {  
     
         private Context context;  
         private LayoutInflater inflater;  
         public ArrayList<String> arr;  
         public MyAdapter(Context context) {  
             super();  
             this.context = context;  
             inflater = LayoutInflater.from(context);  
             arr = new ArrayList<String>();  
             for(int i=0;i<3;i++){    //listview Initialize the 3 Is the item   
                 arr.add("");  
             }  
         }  
         @Override  
         public int getCount() {  
             // TODO Auto-generated method stub  
             return arr.size();  
         }  
         @Override  
         public Object getItem(int arg0) {  
             // TODO Auto-generated method stub  
             return arg0;  
         }  
         @Override  
         public long getItemId(int arg0) {  
             // TODO Auto-generated method stub  
             return arg0;  
         }  
         @Override  
         public View getView(final int position, View view, ViewGroup arg2) {  
             // TODO Auto-generated method stub  
             if(view == null){  
                 view = inflater.inflate(R.layout.list_item, null);  
             }  
             final EditText edit = (EditText) view.findViewById(R.id.edit);  
             edit.setText(arr.get(position));    // In the reconstruction adapter When the data will not be confused   
             Button del = (Button) view.findViewById(R.id.del);  
             edit.setOnFocusChangeListener(new OnFocusChangeListener() {  
                 @Override  
                 public void onFocusChange(View v, boolean hasFocus) {  
                     // TODO Auto-generated method stub  
                     if(arr.size()>0){  
                         arr.set(position, edit.getText().toString());  
                     }  
                 }  
             });  
             del.setOnClickListener(new OnClickListener() {  
                 @Override  
                 public void onClick(View arg0) {  
                     // TODO Auto-generated method stub  
                     // Deletes the deleted item from the collection EditText The content of the   
                     arr.remove(position);  
                     adapter.notifyDataSetChanged();  
                 }  
             });  
             return view;  
         }  
     }  
 } 


Related articles: