2016-02-12 19 views
0

我有一個「ListView」按鈕。當用戶點擊按鈕時,我在arraylist中添加了選定的位置值。但第二次當用戶點擊同一個按鈕時,我想從arraylist中刪除這個按鈕條目如何做到這一點。這是我的代碼snipet如何在arraylist中添加選定值並從arraylist中刪除未選中的值

@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    if (convertView == null) { 
     LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE); 
     convertView = layoutInflater.inflate(R.layout.single_row, null); 


    } 
    TextView msg = (TextView) convertView.findViewById(R.id.tv_wishdata); 
    msg.setText(al.get(position)); 
    ArrayList arrayList = new ArrayList(); 

    final ArrayList list = new ArrayList<String>(); 
    final ImageView iv = (ImageView) convertView.findViewById(R.id.iv_myImageview); 
    final ListView lis = (ListView) convertView.findViewById(R.id.listView); 
    Boolean click = true; 
    iv.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      List<String> listOfFavoritePhrases = new ArrayList<String>(); 
      //check boolean value 
      if (click) { 
       iv.setBackgroundResource(R.drawable.thirdwish); 
       /*TinyDB tinyDB = new TinyDB(context); 
       tinyDB.putString("msg", al .get(position)); 
*/   // al.add(al.get(position)) 

       temp.add(al.get(position)); 

       Log.d("ARRAY DATA", "" + temp); 
       Log.d("ARRAY SIZE", "" + temp.size()); 

       /*ContentValues contentValues = new ContentValues(); 
       contentValues.put("item",al.get(position)); 
       Log.d("Contentvalues",""+contentValues.toString()); 
       db.insert("favorite",null,contentValues);*/ 

       sp = context.getSharedPreferences("mypref",Context.MODE_APPEND); 
       SharedPreferences.Editor editor = sp.edit(); 
       editor.putString("phrases", TextUtils.join(",", temp.toArray())); 
       Log.d("Shared Data", "" + sp.getString("phrases", "")); 
       editor.commit(); 
       click = false; 

      } 
      else { 
       click = true; 
       temp.remove(al.get(position)); 
       iv.setBackgroundResource(R.drawable.onewish); 
       // db.rawQuery("delete from favorite where item like'%" + al.get(position) + "%'", null); 
       Log.d("QUERY", "" + al.get(position)); 
       // al.remove(position); 
       notifyDataSetChanged(); 
      } 
      // Toast.makeText(context, "imageview clicked", Toast.LENGTH_LONG).show(); 
     } 
    }); 
    return convertView; 
} 
+0

你做了什麼錯誤? –

回答

2

猜你的問題,我做了像下面的解決方案。

初始化的ArrayList

ArrayList<String> selectedString = new ArrayList<>(); 

現在的onClick

if(selectedString.contains(al.get(position))){ 
    selectedString.remove(al.get(position)); 
}else { 
    selectedString.add(al.get(position)); 
} 

希望這將是有意義的。

0

您可以使用。

boolean pressedFlag = true; 
ArrayList<String> list = new ArrayList<String>(); 

現在裏面的onClick

if(pressedflag){ 
    list.add(arrayList.get(position)); 
    pressedFlag = false; 
}else{ 
    list.remove(arrayList.get(position)); 
    pressedFlag = true; 
} 

希望這將有助於...

相關問題