3 回答

TA貢獻1806條經驗 獲得超8個贊
供參考遵循步驟
1)例如為id、title、content創建setter和getter方法
public class settter
{
int id;
String name;
String content;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
2)在xml mainactivity中添加recyclerview
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
3)在 MainActivity 中刪除所有 listview 相關代碼并添加下面給出的代碼
RecyclerView recyclerView=(RecyclerView)findViewById(R.id.recycler_view2);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
//make array list object with setter class
ArrayList<setter> name =db.getAllTitles();
//new adapter(ArrayList<setter>, context) ,so initiate adapter
recyclerView.setAdapter(new adapter(name,getApplicationContext()));
//draw line
recyclerView.addItemDecoration(new
DividerItemDecoration(recyclerView.getContext(), DividerItemDecoration.VERTICAL));
4)創建布局文件來保存你的數據并在recyclerview中膨脹
名稱:recycler_content_holder.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/recycler_content_holder"
>
<TextView
android:layout_width="50dp"
android:layout_height="match_parent"
android:gravity="center"
android:id="@+id/tv_id"/>
<TextView
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_marginLeft="30dp"
android:id="@+id/tv_title"
android:gravity="center"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="30dp"
android:gravity="center|right"
android:id="@+id/tv_content"/>
</LinearLayout>
5)創建適配器類
public class adapter extends RecyclerView.Adapter<adapter.AdapterViewHolder>
{
ArrayList<settter> data;
Context context;
public adapter(ArrayList<settter> data,Context context)
{
this.data=data;
this.context=context;
}
@NonNull
@Override
public AdapterViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i)
{
LayoutInflater layoutInflater=LayoutInflater.from(viewGroup.getContext());
View view=layoutInflater.inflate(R.recycler_content_holder,viewGroup,false);
return new ProgramingViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int i)
{
viewHolder.id.setText(""+data.get(i).getId());
viewHolder.title.setText(data.get(i).getTitle());
viewHolder.content.setText(data.get(i).getContent());
viewHolder.linearLayout.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String title = String.valueOf(data.get(i).getTitle());
Intent intent = new Intent(context, Main2Activity.class);
intent.putExtra("title", title);
startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return data.size();
}
//class programingViewHolder
public class AdapterViewHolder extends RecyclerView.ViewHolder
{
TextView id,title,content;
LinearLayout linearLayout;
public AdapterViewHolder(@NonNull View itemView) {
super(itemView);
id=(TextView)itemView.findViewById(R.id.tv_id);
title=(TextView)itemView.findViewById(R.id.tv_mtrNo);
content=(TextView)itemView.findViewById(R.id.tv_nm);
linearLayout=(LinearLayout)itemView.findViewById(R.id.recycler_content_holder);
}
}
}
6) DatabaseHelper 中的更改方法
public ArrayList<setter> getAllTitles(){
ArrayList<setter> arrayList = new ArrayList();
openDatabase();
setter set=new setter();
Cursor cursor = sqLiteDatabase.rawQuery("select * from muallaqat", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()){
set.setTitle(cursor.getString(cursor.getColumnIndex("title")));
//add object to arralist
arrayList.add(set);
cursor.moveToNext();
}
cursor.close();
closeDatabase();
return arrayList;
}
只需復制粘貼即可理解,希望對您有所幫助。

TA貢獻1802條經驗 獲得超5個贊
如果我理解正確的話,您想對來自 SQLite 數據庫的數據使用 recyclerview 嗎?當您單擊某個項目并使用該項目的數據填充它時,您想打開一個新活動嗎?看看這篇文章
RecyclerView 與 Cursor Adapter 的實現

TA貢獻1827條經驗 獲得超9個贊
只需做一件事,從數據庫中獲取 id 和標題,并在 recyclerview 中顯示標題。并且當 onItemClick onItemClick on recyclerview 將特定位置的 id 傳遞給下一個活動。
并在下一個活動中獲取從上一個活動傳遞的 id。
并從帶有 id 的數據中獲取數據。您將獲得所有數據。
并將獲取的數據顯示給活動。
添加回答
舉報