我的listview中有大约5个视图,我想将所选视图推到列表视图的顶部(设置位置0)并向下移动其余视图。例如,我的观点从上到下依次为
1-2-3-4-5
当我选择第三个时,我希望listview是这样的:
3-1-2-4-5但当然他们的最后位置id必须是1-2-3-4-5
答案 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);
}
}
});