2012-01-13 38 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)。这将刷新您的列表视图