2011-04-26 10 views
5

다음은 list1에서 동적 listview get 값을 표시하는 예입니다. 이제 마지막 위치에 (마지막으로) 항목을 추가하고 싶습니다. 삽입 할 때 항목을 덮어 쓰지 않습니다. 그것은 항목의 페이징 것입니다. 누구 좀 도와 주실 래요?End 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

탱크가 너무 많습니다. 그것은 작품이다 – soham

+0

@soham : 대신에 당신이 질문을 당신의 대답으로이 질문을 표시해야합니다 감사합니다. – neworld

+0

이 코드를 어디에 넣어야합니까? onCreate() 또는 getView() 메소드에서? –

0

당신에 의해 당신이 어댑터 업데이트됩니다 데이터 소스 내의 새로운 항목을 추가

itemsAdapter.notifyDataSetChanged(); 
관련 문제