如何在listview android中将所选项目推送到顶部

时间:2014-10-13 19:26:40

标签: android android-listview

我的listview中有大约5个视图,我想将所选视图推到列表视图的顶部(设置位置0)并向下移动其余视图。例如,我的观点从上到下依次为

1-2-3-4-5

当我选择第三个时,我希望listview是这样的:

3-1-2-4-5但当然他们的最后位置id必须是1-2-3-4-5

1 个答案:

答案 0 :(得分:0)

我向您举了一个小例子,您可以重新排序列表,请注意,这仅适用于按钮(如果您要移动整个视图,则可以将转换更改为视图。此外,这仅适用于一个按钮现在,但你可以轻松改变它!

Button btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        // create a new list
        ArrayList<Button> list = new ArrayList<Button>();
        ScrollView view = (ScrollView)findViewById(R.id.scrollView1);

        // add your clicked element on position 0
        list.add ( (Button) arg0 );

        for ( int i = 0; i < view.getChildCount(); i++ ) {
            if ( view.getChildAt(i) != arg0 ) {
                list.add( (Button) view.getChildAt(i));
            }
        }

        view.removeAllViews();

        for ( int x = 0; x < list.size(); x++ ) {
            view.addView(list.get(x));
            list.remove(x);
        }
    }
});