2016-01-24 99 views
0

一個項目我有我做了一個自定義適配器它稱爲Myadp一個ListView:刪除從定製列表視圖

public class Myadp extends ArrayAdapter { 
    private final String[] web; 
    private final String[] t; 
    public Myadp(Context context, int resource, int textViewResourceId, final String[] objects, String[] total) { 
     super(context, resource, textViewResourceId, objects); 
     this.web = objects; 
     this.t = total; 
    } 

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

     final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View row = inflater.inflate(R.layout.list_temp, parent, false); 

     TextView tv2 = (TextView) row.findViewById(R.id.textView2); 
     TextView tv4 = (TextView) row.findViewById(R.id.textView4); 


     tv2.setText(web[position]); 
     tv4.setText(String.valueOf(t[position])); 
     ImageButton del = (ImageButton) row.findViewById(R.id.imageButton); 

     del.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

     }); 


     return row; 
    } 
} 

當上刪除用戶點擊的ImageButton該項目將被刪除。 我嘗試了很多,例如我試圖從數組中刪除該項目(都是網絡& t數組),並重新調用ListView適配器,但我沒有成功,我搜索谷歌和Stackoverflow,但所有的代碼只是簡單的listview適配器。所以現在我需要你的幫助。

+0

你實際上沒有在你的ListView的按鈕的OnClickListener中做任何事情,所以沒有什麼會發生。這是你使用的代碼嗎?如果你正在做這樣的事情,只需擴展BaseAdapter而不是ArrayAdapter可能更有意義。另外[看到這個](http://stackoverflow.com/questions/1709166/android-listview-elements-with-multiple-clickable-buttons),如果你只有一個按鈕是一樣的。 – JonasCz

+0

不我已經刪除了del按鈕的代碼 –

+0

我想顯示我的列表視圖適配器的一般視圖形式 –

回答

0

刪除按鈕的點擊:

  1. 從中用來填充ListView
  2. 列表或字符串[]對象中刪除元素然後調用notifyDataSetChanged()
0

在您的自定義適配器調用this.notifyDataSetChanged();您正在執行刪除功能並從設置爲該適配器的arrayList中刪除該元素。如果你知道哪個記錄是你可以使用ArrayList.remove(index),那麼你必須從ArrayList中移除該記錄。然後使用notifyDataSetChanged();

編輯:轉到您的適配器並添加一個方法delete();

public void delete(int position){ 
data.remove(position); 
notifyItemRemoved(position); 
} 

在你的onClick();方法添加此:

delete(getPosition()); 
+0

正如你所看到的,我使用數組而不是ArrayList,並且從數組中刪除一個元素與ArrayList不同 –