2011-04-26 62 views
5

这里是一个例子,它展示了list1中的动态列表视图获取值。现在我想在结束位置添加项目(最后)。插入时不会覆盖项目。这将是项目的分页。请有人帮助我吗?在结束处添加项listview android

package com.list.viewer; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AbsListView; 
import android.widget.BaseAdapter; 
import android.widget.Button; 
import android.widget.ListView; 
import android.widget.TextView; 

/** http://www.android-codes-examples.blogspot.com/ */ 
public class ListViewExample extends Activity { 

    private String[] list1 = { "Icon", "Icon Creator", "Image", "Image Creator" }; 

    private ListView lister1; 

    Button btn_add; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     lister1 = (ListView) findViewById(R.id.ListView1); 
    btn_add =(Button)findViewById(R.id.btn_add); 
    String[] list2 = { "nikunj", "patel", "hi", "this" }; 
    ItemsAdapter itemsAdapter = new ItemsAdapter(ListViewExample.this, 
      R.layout.list, list2); 
    lister1.setAdapter(itemsAdapter); 
    btn_add.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      // Perform action on click 
      String[] list2 = { "nikunj", "patel", "hi", "this" }; 
      ItemsAdapter itemsAdapter = new ItemsAdapter(ListViewExample.this, 
        R.layout.list, list2); 
      lister1.setAdapter(itemsAdapter); 

     } 
    }); 

     /*lister1.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, 
        int positon, long arg3) { 
       String[] lister = null; 
       switch (positon) { 
       case 0: 
        lister = list21; 
        break; 
       case 1: 
        lister = list22; 
        break; 
       case 2: 
        lister = list23; 
        break; 
       case 3: 
        lister = list24; 
        break; 
       default: 
        lister = list21; 
       } 
       lister2.setAdapter(new ArrayAdapter<String>(
         ListViewExample.this, 
         android.R.layout.simple_list_item_1, lister)); 
      } 
     });*/ 
    } 

    private class ItemsAdapter extends BaseAdapter { 
     String[] items; 

     public ItemsAdapter(Context context, int textViewResourceId, 
       String[] items) { 
      this.items = items; 
     } 

     @Override 
     public View getView(final int position, View convertView, 
       ViewGroup parent) { 
      System.out.println("position is "+position); 
      TextView mDescription; 
      View view = convertView; 
      //ImageView image; 
      if (view == null) { 
       LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       view = vi.inflate(R.layout.list, null); 
      } 
      if(position == 3) 
      { 
       mDescription = (TextView) view.findViewById(R.id.desc); 
       mDescription.setText(items[position]); 
      }else 
      { 
       mDescription = (TextView) view.findViewById(R.id.desc); 
       mDescription.setText(items[position]); 

      } 
      //image = (ImageView) view.findViewById(R.id.image); 

      //image.setBackgroundResource(R.id.image); 
      return view; 
     } 

     public int getCount() { 
      return items.length; 
     } 

     public Object getItem(int position) { 
      return position; 
     } 

     public long getItemId(int position) { 
      return position; 
     } 
    } 
} 

回答

23

您可以添加一个“页脚视图”,这将始终显示在列表的底部:

View footerView = getLayoutInflater().inflate(R.layout.footer_layout, lister1, false); 
lister1.addFooterView(footerView); 
+0

坦克sooooooooooooooo多。这是工作 – soham 2011-04-26 03:44:03

+0

@soham:相反,在评论中说谢谢你必须标记这个问题作为你的问题的答案。 – neworld 2012-07-25 12:58:17

+0

我应该在哪里放这个代码? onCreate()或getView()方法? – 2012-08-28 12:45:41

0

当您通过添加在你的数据源新项目将更新适配器

itemsAdapter.notifyDataSetChanged();