2012-01-13 61 views
0

嗨,我有一個標籤活動,顯示項目列表(ListView)。這listview每行都有一個按鈕。我在我的自定義適配器類中處理這個按鈕clickListener,該類擴展了BaseAdapter類。現在我想要的是當我點擊這個按鈕時,應該從listviewlistview中刪除該項目應該刷新。這個怎麼做?如何刷新標籤頁活動中的列表視圖?

好,我覺得我的代碼可以解釋它

public View getView(final int position, View convertView, ViewGroup parent) 
{ 
    ViewHolder holder; 

    final ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); 

    if(convertView==null) 
    { 
      convertView = mInflater.inflate(R.layout.list_item, null); 
      holder = new ViewHolder(); 
//  holder.appSize = (TextView)convertView.findViewById(R.id.app_size); 

       holder.appName = (TextView)convertView.findViewById(R.id.app_name); 
       holder.app_icon = (ImageView)convertView.findViewById(R.id.app_icon); 
       holder.button = (Button)convertView.findViewById(R.id.uninstall); 
       if(kill_OR_uninstall) 
       { 

         holder.button.setOnClickListener(new OnClickListener() { 

          public void onClick(View v) { 

         Intent intent = new Intent(Intent.ACTION_DELETE); 
         intent.setData(Uri.parse("package:"+package_names.get(position))); 
         context.startActivity(intent); 



        } 
        }); 
       } 

       else 
       { 
         holder.button.setText("End"); 
         holder.button.setOnClickListener(new OnClickListener() { 

         public void onClick(View v) { 
         am.restartPackage(package_names.get(position)); 

         } 
        }); 

       } 

     convertView.setTag(holder); 

    } 

    else 
    {  
        holder = (ViewHolder) convertView.getTag(); 
    } 

    holder.appName.setText((String)app_details.get(position).get(APP_NAME)); 
    holder.app_icon.setImageDrawable((Drawable)app_details.get(position).get(APP_ICON)); 
    // holder.appSize.setText(app_details.get(position).get(APP_SIZE)+ " KB"); 



    return convertView; 

}

回答

1

基於行的,這是點擊刪除從Collection即背襯的Adapter例的項中的位置:

myArrayList.remove(position); 

然後通知列表,所述數據是使用改變:

adapter.notifyDataSetChanged(); 
+0

請參閱我的代碼。 – 2012-01-13 09:20:53

+0

好的...我明白了,但我不明白你需要什麼? – 2012-01-13 09:23:27

+0

我想要點擊'結束'按鈕時,應該從列表中刪除該項目。 – 2012-01-13 09:26:06

0

您的代碼在得到確切的答案可以幫助,但高層次,這是你可能需要做什麼,你需要刪除從實例化自定義適配器類時傳遞的值列表中選擇條目。在第一次嘗試時,您所選的條目將爲空,因此您不需要刪除任何內容。

1

你可以做到。首先在你的按鈕動作偵聽器中,更新你的適配器列表視圖(我的意思是添加/刪除你不想從適配器中獲取的元素),並且你需要調用urlistview.notifydatasetchange(true)。這將刷新您的列表視圖