Database 数据未插入数据库室
我是android新手,这是我第一次在应用程序中使用room。未执行插入操作或未创建数据库或任何其他错误 我不知道我做错了什么,所以我需要你的帮助 此程序正在运行,但未显示结果。屏幕上没有显示任何内容 这是我的密码- 请让我知道此代码中的错误以及我应该如何更正它 Car_details.javaDatabase 数据未插入数据库室,database,mvvm,insert,retrofit2,android-room,Database,Mvvm,Insert,Retrofit2,Android Room,我是android新手,这是我第一次在应用程序中使用room。未执行插入操作或未创建数据库或任何其他错误 我不知道我做错了什么,所以我需要你的帮助 此程序正在运行,但未显示结果。屏幕上没有显示任何内容 这是我的密码- 请让我知道此代码中的错误以及我应该如何更正它 Car_details.java @PrimaryKey @NonNull @SerializedName("id") @Expose private String id; @SerializedName("name") @Expose
@PrimaryKey
@NonNull
@SerializedName("id")
@Expose
private String id;
@SerializedName("name")
@Expose
private String name;
@SerializedName("desc")
@Expose
private String desc;
@SerializedName("image")
@Expose
private String image;
java-
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insert(Car_Details car_details);
@Query("Select * from car_table")
LiveData<List<Car_Details>> selectAll();
CarRepository.java
公共图书馆{
carlinterface carlinterface=改装.create(carlinterface.class);
调用carList=carlistInterface.carList();
carList.enqueue(新回调(){
@凌驾
公共void onResponse(呼叫、最终响应){
if(response.body()!=null){
List car_details=response.body();
对于(int i=0;i
CarViewModel.java
public CarViewModel(@NonNull Application application) {
super(application);
repository= new CarRepository(application);
carList= repository.getCarLists();
}
public LiveData<List<Car_Details>> getListLiveData() {
return carList;
public CarViewModel(@NonNull应用程序){
超级(应用);
存储库=新的存储库(应用程序);
carList=repository.getCarLists();
}
公共LiveData getListLiveData(){
返回卡利斯特;
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
repository = new CarRepository(this);
carViewModel = ViewModelProviders.of(this).get(CarViewModel.class);
recyclerView= findViewById(R.id.cars_recyclerView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
List = new ArrayList<>();
recyclerAdapter = new RecyclerAdapter(List);
recyclerView.setAdapter(recyclerAdapter);
recyclerAdapter = new RecyclerAdapter(List);
recyclerView.setAdapter(recyclerAdapter);
carViewModel.getListLiveData().observe(this, new
Observer<java.util.List<Car_Details>>() {
@Override
public void onChanged(java.util.List<Car_Details> car_details) {
recyclerAdapter.setUserList(List);
}
});
repository.getCarList();
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
存储库=新的存储库(本);
carViewModel=ViewModelProviders.of(this.get)(carViewModel.class);
recyclerView=findViewById(R.id.cars\u recyclerView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(新的LinearLayoutManager(本));
列表=新的ArrayList();
recyclerAdapter=新的recyclerAdapter(列表);
recyclerView.setAdapter(recyclerAdapter);
recyclerAdapter=新的recyclerAdapter(列表);
recyclerView.setAdapter(recyclerAdapter);
carViewModel.getListLiveData().observe(这个,新的
观察员(){
@凌驾
更改后的公共void(java.util.List car\u详细信息){
recyclerAdapter.setUserList(列表);
}
});
getCarList();
}
RecyclerAdapter.java
公共类RecyclerAdapter扩展了RecyclerView.Adapter{
List<Car_Details> carList= new ArrayList<>();
public RecyclerAdapter(List<Car_Details> carList) {
this.carList = carList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater layoutInflater= LayoutInflater.from(parent.getContext());
View view= layoutInflater.inflate(R.layout.row_item,parent,false);
return new RecyclerAdapter.ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.car_name.setText(carList.get(position).getName());
holder.car_desc.setText(carList.get(position).getDesc());
}
public void setUserList(List<Car_Details> userList) {
this.carList = userList;
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return carList.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
private TextView car_name,car_desc;
public ViewHolder(@NonNull View itemView) {
super(itemView);
car_name= itemView.findViewById(R.id.car_name);
car_desc= itemView.findViewById(R.id.car_desc);
}
}
}
@Override
public int getItemCount() {
return carList.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
private TextView car_name,car_desc;
public ViewHolder(@NonNull View itemView) {
super(itemView);
car_name= itemView.findViewById(R.id.car_name);
car_desc= itemView.findViewById(R.id.car_desc);
}
}
}
List carList=new ArrayList();
公共回收站适配器(列表){
this.carList=carList;
}
@非空
@凌驾
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
LayoutInflater LayoutInflater=LayoutInflater.from(parent.getContext());
视图=布局更平坦。充气(R.layout.row_项,父项,false);
返回新的RecyclerAdapter.ViewHolder(视图);
}
@凌驾
public void onBindViewHolder(@NonNull ViewHolder,int位置){
holder.car_name.setText(carList.get(position.getName());
holder.car_desc.setText(carList.get(position.getDesc());
}
public void setUserList(List userList){
this.carList=userList;
notifyDataSetChanged();
}
@凌驾
public int getItemCount(){
返回carList.size();
}
类ViewHolder扩展了RecyclerView.ViewHolder{
私用文本视图车名、车名;
公共视图持有者(@NonNull View itemView){
超级(项目视图);
car\u name=itemView.findviewbyd(R.id.car\u name);
car\u desc=itemView.findviewbyd(R.id.car\u desc);
}
}
}
@凌驾
public int getItemCount(){
返回carList.size();
}
类ViewHolder扩展了RecyclerView.ViewHolder{
私用文本视图车名、车名;
公共视图持有者(@NonNull View itemView){
超级(项目视图);
car\u name=itemView.findviewbyd(R.id.car\u name);
car\u desc=itemView.findviewbyd(R.id.car\u desc);
}
}
}
您对房间的插入操作没有问题。
您在应用程序中使用live date的方式似乎是错误的,这就是为什么您的程序正在运行,但没有结果。
您必须检查使用实时数据的部分。
希望这对您有所帮助。您的插入操作没有任何问题。 您在应用程序中使用live date的方式似乎是错误的,这就是为什么您的程序正在运行,但没有结果。 您必须检查使用实时数据的部分。
希望这能对您有所帮助。您好,欢迎使用堆栈溢出。请格式化您的代码并提供一个最小的示例。@Jeroenhier我已经编辑了我的代码。我不确定它是否正确,所以如果您想让我做更多的格式化,请告诉我。谢谢:)您好,欢迎使用堆栈溢出。请格式化您的代码并提供一个最小的示例。@JeroenHeier我已经编辑了我的代码。我不确定它是否正常。如果你想让我做更多的格式化,请告诉我。谢谢:)是的!你是对的。我后来研究了很多,我得到了检查数据库表和行以及插入操作的解决方案。但是,仍然没有任何可见的内容。是的!你是对的。我后来重新研究了我得到了检查数据库表和行以及插入操作的解决方案
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
repository = new CarRepository(this);
carViewModel = ViewModelProviders.of(this).get(CarViewModel.class);
recyclerView= findViewById(R.id.cars_recyclerView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
List = new ArrayList<>();
recyclerAdapter = new RecyclerAdapter(List);
recyclerView.setAdapter(recyclerAdapter);
recyclerAdapter = new RecyclerAdapter(List);
recyclerView.setAdapter(recyclerAdapter);
carViewModel.getListLiveData().observe(this, new
Observer<java.util.List<Car_Details>>() {
@Override
public void onChanged(java.util.List<Car_Details> car_details) {
recyclerAdapter.setUserList(List);
}
});
repository.getCarList();
}
List<Car_Details> carList= new ArrayList<>();
public RecyclerAdapter(List<Car_Details> carList) {
this.carList = carList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater layoutInflater= LayoutInflater.from(parent.getContext());
View view= layoutInflater.inflate(R.layout.row_item,parent,false);
return new RecyclerAdapter.ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.car_name.setText(carList.get(position).getName());
holder.car_desc.setText(carList.get(position).getDesc());
}
public void setUserList(List<Car_Details> userList) {
this.carList = userList;
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return carList.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
private TextView car_name,car_desc;
public ViewHolder(@NonNull View itemView) {
super(itemView);
car_name= itemView.findViewById(R.id.car_name);
car_desc= itemView.findViewById(R.id.car_desc);
}
}
}
@Override
public int getItemCount() {
return carList.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
private TextView car_name,car_desc;
public ViewHolder(@NonNull View itemView) {
super(itemView);
car_name= itemView.findViewById(R.id.car_name);
car_desc= itemView.findViewById(R.id.car_desc);
}
}
}