2012-03-25 58 views
0

從列表中的項目我剛開始處理列表,所以這可能是一個愚蠢的問題,但我不知道該怎麼做,我也查了很多類似的問題,但他們的信息很複雜。我只有數字的列表將只在用戶從EditText框輸入的1到10個項目之間,所以很簡單,在顯示器上我想讓用戶能夠從這個列表中長時間刪除項目按項目行,我該如何做到這一點?的Android如何刪除與longclicklistener

這是我的代碼:

final ArrayList<Double> individuallist = new ArrayList<Double>(); 
final ArrayAdapter<Double> bb; 
bb = new ArrayAdapter<Double>(this,android.R.layout.simple_list_item_1 ,individuallist); 
listView.setAdapter(bb); 

    // add button 

    Button addbutton = (Button) findViewById(R.id.btnnext); 
    addbutton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
          iamount = amountText.getText().toString(); 
         it = Double.valueOf(iamount); 
      individuallist.add(0, it); 
      bb.notifyDataSetChanged(); 
      item1.setText(""); 
     } 
    }); 

這是我聲明我的列表和添加項目:項目1是一個EditText上框,我得到的用戶量。我如何刪除列表中的單個項目?

在此先感謝您的幫助。如果你想要的項目從列表中刪除時,在列表中的項目的用戶點擊長,叫setOnItemLongClickListener()您的ListView

回答

3

從實施OnItemLongClickListener,你會得到位置。你可以更新你的ListAdapter。它可能看起來像,

listView.setOnItemLongClickListener(new OnItemLongClickListener() { 
    @Override 
    public void onItemLongClick((AdapterView<?> parent, View view, int position, long id) { 
    MyAdapter adapter = (MyAdapter)listView.getAdapter(); 
    myAdapter.removeItemAt(pos); // you need to implement this method 
    myAdapter.notifyDataSetChanged(); 
    } 
)); 
+1

你怎麼會去執行'myAdapter.removeItemAt(POS);'方法?我只能選擇'myAdapter.remove(object)'。 – mattboy 2012-03-25 22:00:00

+0

最好的方法是從適配器中刪除ArrayList bb.remove(pos)的值並調用notifyDataSetChanged() – 207 2012-03-25 22:04:30

+0

,通常有一個列表返回列表的對象。只需實現一個方法來調用列表並移除特定位置的項目。 – 2012-03-25 22:05:29