如何将列表项发送到android列表的末尾?

时间:2013-01-16 21:53:22

标签: 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);

}

编辑:

感谢您到目前为止的冬天。一些有用的人要求更多代码,所以这里是一切(包括添加列表中的东西):

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);

    }
}

2 个答案:

答案 0 :(得分:1)

你的适配器告诉列表什么订单项在。使适配器告诉它该项目在最后 - 可能是将它从ArrayList中删除并将其添加到列表的末尾,但确切的方法取决于你的代码。然后通过调用notifyDataSetChanged告诉适配器其数据已更改。

答案 1 :(得分:-1)

首先获取列表长。一旦你拥有它,你只需将项目删除线位置设置为列表长,这将把你的项目作为底部