recyclerView视图
在上次的基础上做了改进,把textview改成了recyclerview

MainActivity
package com.example.roombasic; import androidx.appcompat.app.AppCompatActivity; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.util.List; public class MainActivity extends AppCompatActivity { Button insert, update, clear, delete; WordViewModel wordViewModel; RecyclerView recyclerView; MyAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); wordViewModel = new ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory.getInstance(getApplication())).get(WordViewModel.class); recyclerView=findViewById(R.id.recyclerView); myAdapter=new MyAdapter(); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setAdapter(myAdapter); wordViewModel.getAllWordsLive().observe(this, new Observer<List<Word>>() { @Override public void onChanged(List<Word> words) { myAdapter.setAllwords(words); myAdapter.notifyDataSetChanged(); } }); insert = findViewById(R.id.insert); clear = findViewById(R.id.clear); delete = findViewById(R.id.delete); update = findViewById(R.id.update); insert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String [] english={ "Hello","World","Android","Google","Studio","Project","Database","Recycle","View","String","Value","Integer" }; String[] chinese={"你好","世界","安卓系统","谷歌公司","工作室","项目","数据库","回收站","视图","字符串","价值","整数类型"}; for(int i=0;i<english.length;i++){ wordViewModel.insertWord(new Word(english[i],chinese[i])); } } }); clear.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { wordViewModel.deleteAllWord(); } }); update.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Word word = new Word("Hi", "你好啊"); word.setId(10); wordViewModel.updateWord(word); } }); delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Word word = new Word("world", "世界"); word.setId(32); wordViewModel.deleteWord(word); } }); } }
MyAdapter 适配器
package com.example.roombasic; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; import java.util.List; public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { List<Word> allwords=new ArrayList<>(); public void setAllwords(List<Word> allwords) { this.allwords = allwords; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { LayoutInflater layoutInflater=LayoutInflater.from(parent.getContext()); View itemView=layoutInflater.inflate(R.layout.cell_normal,parent,false); return new MyViewHolder(itemView); //return null; } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { Word word=allwords.get(position); holder.textViewnumber.setText(String.valueOf(position+1)); holder.textViewenglish.setText(word.getWord()); holder.textViewchinese.setText(word.getChieseMeaning()); } @Override public int getItemCount() { return allwords.size(); } static class MyViewHolder extends RecyclerView.ViewHolder{ TextView textViewnumber,textViewenglish,textViewchinese; public MyViewHolder(@NonNull View itemView) { super(itemView); textViewnumber=itemView.findViewById(R.id.textViewnumber); textViewenglish=itemView.findViewById(R.id.textViewenglish); textViewchinese=itemView.findViewById(R.id.textViewchinese); } } }
activity_main.xml

cell_normal.xml

浙公网安备 33010602011771号