冲刺九
今天是冲刺的第九天,主要实现了用户收藏笔记列表界面的构造
遇到的困难: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>
截图: