2014-01-21 67 views
0

我想用標題,描述和其他數據在每行中使用自定義列表視圖刪除imagebutton。刪除行列表查看android

當我點擊行號10中的ImageButton時,ListView中的第5行被刪除!

enter image description here

myadapter:

public static class ViewHolder { 
    TextView favorites_title; 
    TextView favorites_description; 
    TextView favorites_date; 
    ImageButton favorites_btn_delete ; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 

    ViewHolder holder; 
    if(convertView==null){ 
     /****** Inflate tabitem.xml file for each row (Defined below) *******/ 
     convertView = inflater.inflate(R.layout.favorites_list_row_layout, null); 

     /****** View Holder Object to contain tabitem.xml file elements ******/ 

     holder = new ViewHolder(); 
     holder.favorites_title = (TextView) convertView.findViewById(R.id.favorites_title); 
     holder.favorites_description = (TextView) convertView.findViewById(R.id.favorites_description); 
     holder.favorites_date = (TextView) convertView.findViewById(R.id.favorites_date); 
     holder.favorites_btn_delete = (ImageButton)convertView.findViewById(R.id.favorites_btn_delete); 
     /************ Set holder with LayoutInflater ************/ 
     convertView.setTag(holder); 
     holder.favorites_btn_delete.setTag(position); 
    } 
    else 
     holder=(ViewHolder)convertView.getTag(); 
    holder.favorites_btn_delete.getTag(); 
    NewsItem newsItem = (NewsItem) listData.get(position); 

    holder.favorites_title.setText(newsItem.getHeadline()); 
    holder.favorites_description.setText(newsItem.getDescription()); 
    holder.favorites_date.setText(newsItem.getDate()); 
    holder.favorites_btn_delete.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Integer index = (Integer) v.getTag(); 
      int i = index.intValue(); 
      Log.e("Position", String.valueOf(i)); 
     // listData.remove(i); 
     // notifyDataSetChanged(); 

     } 
    }); 
+1

您是否已經使用了convertview.getTag(),所以只需傳遞getview中的默認位置即可。 listData.remove(位置); – skyshine

回答

1

移動holder.favorites_btn_delete.setTag(position);if else要不然外面的新position值永遠不會被設置爲在Button標籤時convertView不爲空,舊值將保持不變標籤

0

holder.favorites_btn_delete.setOnClickListener(this);

的getview方法

public void onClick(View v) 
    { 
    // TODO Auto-generated method stub 
      Integer index = (Integer) v.getTag(); 
      int i = index.intValue(); 
      Log.e("Position", String.valueOf(i)); 
      listData.remove(i); 
     notifyDataSetChanged(); 

} 
0

使用這種code..it將幫助ü外..

申請onItem點擊圖片按鈕

@Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 
     listData.remove(positon); 
     notifyDataSetChanged(); 
    } 

監聽你的活動應用此。