Heim > Java > javaLernprogramm > Beispielcode für das dynamische Hinzufügen und Löschen von Daten in Android ListView

Beispielcode für das dynamische Hinzufügen und Löschen von Daten in Android ListView

高洛峰
Freigeben: 2017-01-20 15:33:46
Original
1875 Leute haben es durchsucht

main.xml-Datei:

<?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="添加" 
      /> 
     </LinearLayout> 
 </LinearLayout>
Nach dem Login kopieren

listview_item.xml-Datei:

 <?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="删除" 
     /> 
        
 </LinearLayout>
Nach dem Login kopieren

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初始化3个子项 
                 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));    //在重构adapter的时候不至于数据错乱 
             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 
                     //从集合中删除所删除项的EditText的内容 
                     arr.remove(position); 
                     adapter.notifyDataSetChanged(); 
                 } 
             }); 
             return view; 
         } 
     } 
 }
Nach dem Login kopieren

Mehr Daten in Android ListView Für Artikel Im Zusammenhang mit dem dynamischen Hinzufügen und Löschen von Instanzcodes beachten Sie bitte die chinesische PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage