2013-01-16 33 views
0

我的想法是做一個購物清單,當我點擊一個項目時,它會得到一個刪除線,並進入列表的末尾。到目前爲止,除了將項目發送到列表的末尾之外,我已經得到了一切。這裏有一點我的代碼:我如何發送列表項到Android列表的結尾?

protected void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 
    super.onListItemClick(l, v, position, id); 

    TextView text = (TextView) v.findViewById(android.R.id.text1); 
    text.setPaintFlags(text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); 

} 

編輯:

謝謝你的anwsers至今。一些有用的人請求更多的代碼,所以這裏是一切(包括添加東西到列表):

public class ShoppingActivity extends ListActivity { 

    ArrayList<String> list = new ArrayList<String>(); 
    ArrayAdapter<String> adapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_shopping); 

     Button add = (Button) findViewById(R.id.btnAdd); 

     adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, list); 

     OnClickListener listner = new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       EditText item = (EditText) findViewById(R.id.etItem); 
       list.add(item.getText().toString()); 
       item.setText(""); 
       adapter.notifyDataSetChanged(); 
      } 
     }; 

     add.setOnClickListener(listner); 

     setListAdapter(adapter); 
    } 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     // TODO Auto-generated method stub 
     super.onListItemClick(l, v, position, id); 

     TextView text = (TextView) v.findViewById(android.R.id.text1); 
     text.setPaintFlags(text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); 

    } 
} 
+0

這是可能的,但需要更多的代碼來幫助你。你能發佈你如何實現ListView,尤其是底層數據源嗎? – MattDavis

+0

答案將取決於您用來將項目加載到ListView中的適配器,您可以爲此構建代碼嗎?如果它是某種ArrayAdapter,儘管在高層次上,你要做的就是從列表中刪除該項目,然後將其重新插入到最高可用索引 – FoamyGuy

回答

1

您的適配器告訴列表項目的順序。使適配器告訴它該項目在最後 - 可能是將它從ArrayList中移除並將其添加到列表的末尾,但確切的方法取決於您的代碼。然後通過調用notifyDataSetChanged來告訴適配器其數據已更改。

+0

謝謝,虐待嘗試如果我能得到我想要的結果。 – user1985273

-1

首先得到列表長。一旦你有了它,你只能將項目刪除線位置設置到列表中,這會將項目設置爲底部

相關問題