冲刺九

今天是冲刺的第九天,主要实现了用户收藏笔记列表界面的构造

遇到的困难:recyclerView做简单列表不如listView好。

解决思路:listView用的不熟,为了保险,采用recyclerView代替listView了,。

明天计划完成的任务:实现用户收藏笔记删除

附上编写代码:

Note_look.java

package com.itheima.cloudnotes.Activity;

import android.annotation.SuppressLint;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.StrictMode;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;

import com.itheima.cloudnotes.R;
import com.itheima.cloudnotes.adapter.LoadMoreWrapper;
import com.itheima.cloudnotes.adapter.Note_collect;
import com.itheima.cloudnotes.db.DBService;
import com.itheima.cloudnotes.enity.Note;
import com.itheima.cloudnotes.listener.EndlessRecyclerOnScrollListener;

import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

public class Note_look extends AppCompatActivity {

    private List<Note> noteCollectList=new ArrayList<>();
    private SwipeRefreshLayout srl;
    private RecyclerView recyclerView;
    private LoadMoreWrapper loadMoreWrapper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_note_look);
        StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        init();
        upMore();
        downFresh();
    }

    public void init()
    {
        initCollectNotes();
        recyclerView=findViewById(R.id.recycler_notecollect);
        LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
        recyclerView.setLayoutManager(linearLayoutManager);
        Note_collect note_collect=new Note_collect(noteCollectList);
        loadMoreWrapper=new LoadMoreWrapper(note_collect);
        recyclerView.setAdapter(loadMoreWrapper);
    }

    public void upMore()
    {
        // 设置加载更多监听
        recyclerView.addOnScrollListener(new EndlessRecyclerOnScrollListener() {
            @Override
            public void onLoadMore() {
                loadMoreWrapper.setLoadState(loadMoreWrapper.LOADING);

                if (noteCollectList.size()<20) {
                    // 模拟获取网络数据,延时1s
                    new Timer().schedule(new TimerTask() {
                        @Override
                        public void run() {
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    initCollectNotes();
                                    loadMoreWrapper.setLoadState(loadMoreWrapper.LOADING_COMPLETE);
                                }
                            });
                        }
                    }, 1000);
                } else {
                    // 显示加载到底的提示
                    loadMoreWrapper.setLoadState(loadMoreWrapper.LOADING_END);
                }
            }
        });
    }

    @SuppressLint("ResourceAsColor")
    public void downFresh()
    {
        srl=findViewById(R.id.notecollect_refresh);//获取SwipeRefreshLayout实例
        srl.setColorSchemeColors(R.color.colorPrimary);//设置刷新进度颜色
        srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener( ) {
            @Override
            public void onRefresh()
            {
                new Thread(new Runnable( )
                {
                    @Override
                    public void run()
                    {
                        initCollectNotes();
                        //切回主线程
                        runOnUiThread(new Runnable( ) {
                            @Override
                            public void run() {
                                initCollectNotes();
                                loadMoreWrapper.notifyDataSetChanged();//通知数据已发生变化
                                srl.setRefreshing(false);//当刷新结束时隐藏刷新条
                            }
                        });
                    }

                }).start();

            }
        });
    }

    public void initCollectNotes()
    {
        SharedPreferences pref=    getSharedPreferences("user_id",    MODE_PRIVATE);
        int    userId=pref.getInt("userId",0);
        DBService dbService=DBService.getDbService();
        noteCollectList=dbService.getCollectList(userId);
    }

}

 

activity_note_look.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".Activity.Note_look">

    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        android:id="@+id/notecollect_refresh"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recycler_notecollect"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_horizontal|center_vertical"
            >
        </androidx.recyclerview.widget.RecyclerView>

    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

</LinearLayout>

 

截图:

 

posted @ 2020-04-22 19:54  一粒盐  阅读(100)  评论(0编辑  收藏  举报