android_Collections.sort與Collections.swap

效果圖

點擊按鈕實現排序和數據交互

layout:

    tools:context="com.example.iamchan.allfunction.ui.program.CollectionsActivity">
    <include layout="@layout/toolbar"></include>
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <Button
            android:text="排序"
            android:id="@+id/btn1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <Button
            android:text="交換數據"
            android:id="@+id/btn2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyc"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </android.support.v7.widget.RecyclerView>
    </LinearLayout>
</LinearLayout>

java:

private List<Integer> intList=new ArrayList<>();
private CommonAdapter comm;
private Boolean tag=false;//排序標識
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_collections);
    ButterKnife.bind(this);
    tvTitle.setText("CollectionsActivity");
    ivImgLeft.setImageResource(R.drawable.left);
    ivImgLeft.setVisibility(View.VISIBLE);
    initData();
    initRecyc();
}
private void initData() {
    intList.add(1);
    intList.add(5);
    intList.add(10);
    intList.add(9);
    intList.add(4);
    intList.add(20);
}

private void initRecyc() {
    comm=new CommonAdapter(this,R.layout.item_widget,intList) {
        @Override
        protected void convert(ViewHolder holder, Object o, int position) {
            holder.setText(R.id.tv_name,String.valueOf(intList.get(position)));
        }
    };
    LinearLayoutManager lin=new LinearLayoutManager(this);
    lin.setOrientation(LinearLayoutManager.VERTICAL);
    recyc.setAdapter(comm);
    recyc.setLayoutManager(lin);
}
@OnClick({R.id.iv_imgLeft, R.id.btn1, R.id.btn2})
public void onViewClicked(View view) {
    switch (view.getId()) {
        case R.id.iv_imgLeft:
            finish();
            break;
        case R.id.btn1:
            /*
            * 想要控制升序降序  就需要再傳一個參數
            * Collections.sort(intList);//默認升序
            * */
            tag=!tag;
            Collections.sort(intList, new Comparator<Integer>() {
                @Override
                public int compare(Integer o1, Integer o2) {
                    if(tag) {
                        return o2 - o1;//降序排列
                    }else{
                        return o1-o2;//升序排列
                    }
                }
            });
            comm.notifyDataSetChanged();
            break;
        case R.id.btn2:
            Collections.swap(intList,0,3);//可以實現切換位置 list中的0位置數據和 3位置數據切換
            comm.notifyDataSetChanged();
            break;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章