Java 回收器视图不刷新和显示数据

Java 回收器视图不刷新和显示数据,java,android,database,android-studio,android-recyclerview,Java,Android,Database,Android Studio,Android Recyclerview,在我的recycler视图中,当数据被添加时,recycelr视图不会显示它,直到用户关闭活动并再次打开它。 我认为这与愤怒有关。 请帮我做这个 到目前为止,唯一有效的方法就是创造一个意图。 但这让应用程序变得非常糟糕 我的适配器 package com.example.myapplication; import android.content.Context; import android.view.LayoutInflater; import android.view.View; impo

在我的recycler视图中,当数据被添加时,recycelr视图不会显示它,直到用户关闭活动并再次打开它。 我认为这与愤怒有关。 请帮我做这个

到目前为止,唯一有效的方法就是创造一个意图。 但这让应用程序变得非常糟糕

我的适配器

package com.example.myapplication;

import android.content.Context;
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.List;

public class Rec_adaptor_aza extends RecyclerView.Adapter<Rec_adaptor_aza.ViewHolder> {
    Context context;

    public Rec_adaptor_aza(Context context, List<Model_aza> list_aza) {
        this.context = context;
        this.list_aza = list_aza;
    }

    List<Model_aza> list_aza;
    @NonNull
    @Override
    public Rec_adaptor_aza.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
       View view= LayoutInflater.from(context).inflate(R.layout.rec_row_aza,parent,false);

        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull Rec_adaptor_aza.ViewHolder holder, int position) {
    Model_aza modelAza =list_aza.get(position);
    holder.txt_name.setText(modelAza.getName_aza());
    holder.txt_semat.setText(modelAza.getSemat_aza());
    holder.txt_saat_voood.setText(modelAza.getSaaat_vorood_aza());
    holder.txt_saat_khoroo.setText(modelAza.getSaat_khorooj_aza());

    }

    @Override
    public int getItemCount() {
        return list_aza.size();
    }
    public class ViewHolder extends RecyclerView.ViewHolder {
        TextView txt_name,txt_semat,txt_saat_voood,txt_saat_khoroo;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            txt_name=itemView.findViewById(R.id.txt__person__name);
            txt_semat=itemView.findViewById(R.id.txt__person__semat);
            txt_saat_voood=itemView.findViewById(R.id.txt__person__enter);
            txt_saat_khoroo=itemView.findViewById(R.id.txt__person__out);

        }
    }
}
我的活动

import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;
import java.util.List;

public class Activity_Gozaresh_giri extends AppCompatActivity {
    private static final String TAG = "gozaresh_activity";
    List<Model_aza> list_aza;
    Rec_adaptor_aza rec_adaptor_aza;
    public static Context context;
    SQLiteDatabase sqLiteDatabase;
    ImageButton btn__add__field, btn__add__field1;
    final DataBase_aza dataBase_aza = new DataBase_aza(this);
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_gozaresh_giri);
        btn__add__field1 = findViewById(R.id.btn__add__field1);
        btn__add__field = findViewById(R.id.btn__add__field);
        int id=getIntent().getIntExtra("id",0);
        list_aza = new ArrayList<>();
        Log.d(TAG, "onCreate: onclicked");

        btn__add__field.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                EditText edtname = findViewById(R.id.edt__person__name);
                EditText edt_semat_aza = findViewById(R.id.edt__person__semat);
                EditText edt_vorood_aza = findViewById(R.id.edt__person__enter);
                EditText edt_khorooj_aza = findViewById(R.id.edt__person__out);
                String name_aza = edtname.getText().toString();
                String semat_aza = edt_semat_aza.getText().toString();
                String saat_vorood_aza = edt_vorood_aza.getText().toString();
                String saat_khorooj_aza = edt_khorooj_aza.getText().toString();
                long result = dataBase_aza.insert_info(name_aza, semat_aza, saat_vorood_aza, saat_khorooj_aza,id);
                Toast.makeText(Activity_Gozaresh_giri.this, result + "", Toast.LENGTH_SHORT).show();
            }
        });
        Cursor cursor1 = dataBase_aza.cursor(id);
        for (cursor1.moveToFirst(); !cursor1.isAfterLast(); cursor1.moveToNext()) {
            Model_aza modelAza = new Model_aza();
            modelAza.setName_aza(cursor1.getString(1));
            modelAza.setSemat_aza(cursor1.getString(2));
            modelAza.setSaaat_vorood_aza(cursor1.getString(3));
            modelAza.setSaat_khorooj_aza(cursor1.getString(4));
            list_aza.add(modelAza);
        }
        RecyclerView recyclerView_aza = findViewById(R.id.rec_aza);
        recyclerView_aza.setAdapter(new Rec_adaptor_aza(this, list_aza));
        recyclerView_aza.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
    }

}

我希望recycler视图在用户单击添加按钮后立即显示数据,添加条目后只需通知数据集已更改为适配器,如下所示

 @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gozaresh_giri);
    btn__add__field1 = findViewById(R.id.btn__add__field1);
    btn__add__field = findViewById(R.id.btn__add__field);
    int id=getIntent().getIntExtra("id",0);
    list_aza = new ArrayList<>();
    Log.d(TAG, "onCreate: onclicked");


    rec_adaptor_aza = new Rec_adaptor_aza(this, list_aza);
    RecyclerView recyclerView_aza = findViewById(R.id.rec_aza);

    recyclerView_aza.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
     recyclerView_aza.setAdapter(rec_adaptor_aza);


    Cursor cursor1 = dataBase_aza.cursor(id);
    for (cursor1.moveToFirst(); !cursor1.isAfterLast(); cursor1.moveToNext()) {
        Model_aza modelAza = new Model_aza();
        modelAza.setName_aza(cursor1.getString(1));
        modelAza.setSemat_aza(cursor1.getString(2));
        modelAza.setSaaat_vorood_aza(cursor1.getString(3));
        modelAza.setSaat_khorooj_aza(cursor1.getString(4));
        list_aza.add(modelAza);
    }

    rec_adaptor_aza.notifyDataSetChanged();

    btn__add__field.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            EditText edtname = findViewById(R.id.edt__person__name);
            EditText edt_semat_aza = findViewById(R.id.edt__person__semat);
            EditText edt_vorood_aza = findViewById(R.id.edt__person__enter);
            EditText edt_khorooj_aza = findViewById(R.id.edt__person__out);
            String name_aza = edtname.getText().toString();
            String semat_aza = edt_semat_aza.getText().toString();
            String saat_vorood_aza = edt_vorood_aza.getText().toString();
            String saat_khorooj_aza = edt_khorooj_aza.getText().toString();
            long result = dataBase_aza.insert_info(name_aza, semat_aza, saat_vorood_aza, saat_khorooj_aza,id);

            rec_adaptor_aza.notifyDataSetChanged(); // change here
            Toast.makeText(Activity_Gozaresh_giri.this, result + "", Toast.LENGTH_SHORT).show();
        }
    });

}
    RecyclerView recyclerView_aza = findViewById(R.id.rec_aza);
    // set layout manager before set adapter
    recyclerView_aza.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
    recyclerView_aza.setAdapter(new Rec_adaptor_aza(this, list_aza));
@覆盖
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gozaresh_giri);
btn\uuuuu添加\uuuu字段1=findViewById(R.id.btn\uuuuu添加\uuuuu字段1);
btn\uuuu添加\uuu字段=findViewById(R.id.btn\uuu添加\uu字段);
int id=getIntent().getIntExtra(“id”,0);
list_aza=new ArrayList();
Log.d(标记“onCreate:onclicked”);
rec_适配器_aza=新rec_适配器_aza(此,列表_aza);
RecyclerView RecyclerView_aza=findViewById(R.id.rec_aza);
recyclerView_aza.setLayoutManager(新的LinearLayoutManager(此,LinearLayoutManager.VERTICAL,false));
recyclerView_aza.setAdapter(rec_Adapter_aza);
游标cursor1=数据库_aza.Cursor(id);
for(cursor1.moveToFirst();!cursor1.isAfterLast();cursor1.moveToNext()){
Model_aza modelAza=新的Model_aza();
modelAza.setName_aza(cursor1.getString(1));
modelAza.setSemat_aza(cursor1.getString(2));
modelAza.setsaaaat_vorood_aza(cursor1.getString(3));
modelAza.setSaat_khoroj_aza(cursor1.getString(4));
列表_aza.add(modelAza);
}
rec_adapter_aza.notifyDataSetChanged();
btn\uuuu添加\uuuu字段。setOnClickListener(新视图。OnClickListener(){
@凌驾
公共void onClick(视图){
EditText edtname=findViewById(R.id.edt\u人员\u姓名);
EditText edt\u semat\u aza=findViewById(R.id.edt\u person\u semat);
EditText edt_vorood_aza=findViewById(R.id.edt_人输入);
EditText edt_khorooj_aza=findViewById(R.id.edt______________________);
字符串名称_aza=edtname.getText().toString();
字符串semat_aza=edt_semat_aza.getText().toString();
字符串saat_vorood_aza=edt_vorood_aza.getText().toString();
字符串saat_khoroj_aza=edt_khoroj_aza.getText().toString();
long result=数据库_aza.插入_info(name_aza,semat_aza,saat_vorood_aza,saat_khorooj_aza,id);
rec_adapter_aza.notifyDataSetChanged();//在此处更改
Toast.makeText(Activity_Gozaresh_giri.this,result+“”,Toast.LENGTH_SHORT).show();
}
});
}

活动
中将
适配器
设置为
RecyleView
之前,设置
布局管理器
,如下所示

 @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gozaresh_giri);
    btn__add__field1 = findViewById(R.id.btn__add__field1);
    btn__add__field = findViewById(R.id.btn__add__field);
    int id=getIntent().getIntExtra("id",0);
    list_aza = new ArrayList<>();
    Log.d(TAG, "onCreate: onclicked");


    rec_adaptor_aza = new Rec_adaptor_aza(this, list_aza);
    RecyclerView recyclerView_aza = findViewById(R.id.rec_aza);

    recyclerView_aza.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
     recyclerView_aza.setAdapter(rec_adaptor_aza);


    Cursor cursor1 = dataBase_aza.cursor(id);
    for (cursor1.moveToFirst(); !cursor1.isAfterLast(); cursor1.moveToNext()) {
        Model_aza modelAza = new Model_aza();
        modelAza.setName_aza(cursor1.getString(1));
        modelAza.setSemat_aza(cursor1.getString(2));
        modelAza.setSaaat_vorood_aza(cursor1.getString(3));
        modelAza.setSaat_khorooj_aza(cursor1.getString(4));
        list_aza.add(modelAza);
    }

    rec_adaptor_aza.notifyDataSetChanged();

    btn__add__field.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            EditText edtname = findViewById(R.id.edt__person__name);
            EditText edt_semat_aza = findViewById(R.id.edt__person__semat);
            EditText edt_vorood_aza = findViewById(R.id.edt__person__enter);
            EditText edt_khorooj_aza = findViewById(R.id.edt__person__out);
            String name_aza = edtname.getText().toString();
            String semat_aza = edt_semat_aza.getText().toString();
            String saat_vorood_aza = edt_vorood_aza.getText().toString();
            String saat_khorooj_aza = edt_khorooj_aza.getText().toString();
            long result = dataBase_aza.insert_info(name_aza, semat_aza, saat_vorood_aza, saat_khorooj_aza,id);

            rec_adaptor_aza.notifyDataSetChanged(); // change here
            Toast.makeText(Activity_Gozaresh_giri.this, result + "", Toast.LENGTH_SHORT).show();
        }
    });

}
    RecyclerView recyclerView_aza = findViewById(R.id.rec_aza);
    // set layout manager before set adapter
    recyclerView_aza.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
    recyclerView_aza.setAdapter(new Rec_adaptor_aza(this, list_aza));
希望对你有帮助快乐编码

如下所示:-

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gozaresh_giri);
    btn__add__field1 = findViewById(R.id.btn__add__field1);
    btn__add__field = findViewById(R.id.btn__add__field);
    int id=getIntent().getIntExtra("id",0);
    list_aza = new ArrayList<>();
    Rec_adaptor_aza  adapter = new Rec_adaptor_aza(this, list_aza);  // Add
    RecyclerView recyclerView_aza = findViewById(R.id.rec_aza);
    recyclerView_aza.setAdapter(adapter);
    recyclerView_aza.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
    btn__add__field.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            EditText edtname = findViewById(R.id.edt__person__name);
            EditText edt_semat_aza = findViewById(R.id.edt__person__semat);
            EditText edt_vorood_aza = findViewById(R.id.edt__person__enter);
            EditText edt_khorooj_aza = findViewById(R.id.edt__person__out);
            String name_aza = edtname.getText().toString();
            String semat_aza = edt_semat_aza.getText().toString();
            String saat_vorood_aza = edt_vorood_aza.getText().toString();
            String saat_khorooj_aza = edt_khorooj_aza.getText().toString();
            long result = dataBase_aza.insert_info(name_aza, semat_aza, saat_vorood_aza, saat_khorooj_aza,id);
            Model_aza modelAza = new Model_aza();   // Add
            modelAza.setName_aza(name_aza);// Add
            modelAza.setSemat_aza(semat_aza);// Add
            modelAza.setSaaat_vorood_aza(saat_vorood_aza);// Add
            modelAza.setSaat_khorooj_aza(saat_khorooj_aza);// Add
            list_aza.add(modelAza);// Add
            adapter.notifyDataSetChanged();// Add
            Toast.makeText(Activity_Gozaresh_giri.this, result + "", Toast.LENGTH_SHORT).show();
        }
    });
    Cursor cursor1 = dataBase_aza.cursor(id);
    for (cursor1.moveToFirst(); !cursor1.isAfterLast(); cursor1.moveToNext()) {
        Model_aza modelAza = new Model_aza();
        modelAza.setName_aza(cursor1.getString(1));
        modelAza.setSemat_aza(cursor1.getString(2));
        modelAza.setSaaat_vorood_aza(cursor1.getString(3));
        modelAza.setSaat_khorooj_aza(cursor1.getString(4));
        list_aza.add(modelAza);
    }
    adapter.notifyDataSetChanged();// Add
}
@覆盖
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gozaresh_giri);
btn\uuuuu添加\uuuu字段1=findViewById(R.id.btn\uuuuu添加\uuuuu字段1);
btn\uuuu添加\uuu字段=findViewById(R.id.btn\uuu添加\uu字段);
int id=getIntent().getIntExtra(“id”,0);
list_aza=new ArrayList();
Rec_adapter_aza adapter=新的Rec_adapter_aza(此,列表_aza);//添加
RecyclerView RecyclerView_aza=findViewById(R.id.rec_aza);
recyclerView_aza.setAdapter(适配器);
recyclerView_aza.setLayoutManager(新的LinearLayoutManager(此,LinearLayoutManager.VERTICAL,false));
btn\uuuu添加\uuuu字段。setOnClickListener(新视图。OnClickListener(){
@凌驾
公共void onClick(视图){
EditText edtname=findViewById(R.id.edt\u人员\u姓名);
EditText edt\u semat\u aza=findViewById(R.id.edt\u person\u semat);
EditText edt_vorood_aza=findViewById(R.id.edt_人输入);
EditText edt_khorooj_aza=findViewById(R.id.edt______________________);
字符串名称_aza=edtname.getText().toString();
字符串semat_aza=edt_semat_aza.getText().toString();
字符串saat_vorood_aza=edt_vorood_aza.getText().toString();
字符串saat_khoroj_aza=edt_khoroj_aza.getText().toString();
long result=数据库_aza.插入_info(name_aza,semat_aza,saat_vorood_aza,saat_khorooj_aza,id);
Model_aza modelAza=新的Model_aza();//添加
modelAza.setName_aza(name_aza);//添加
modelAza.setSemat_aza(semat_aza);//添加
modelAza.setSaaat_vorood_aza(saat_vorood_aza);//添加
modelAza.setSaat_khoroj_aza(saat_khoroj_aza);//添加
list_aza.add(modelAza);//add
adapter.notifyDataSetChanged();//添加
Toast.makeText(Activity_Gozaresh_giri.this,result+“”,Toast.LENGTH_SHORT).show();
}
});
游标cursor1=数据库_aza.Cursor(id);
for(cursor1.moveToFirst();!cursor1.isAfterLast();cursor1.moveToNext()){
Model_aza modelAza=新的Model_aza();
modelAza.setName_aza(cursor1.getString(1));
modelAza.setSemat_aza(cursor1.getString(2));
modelAza.setsaaaat_vorood_aza(cursor1.getString(3));
modelAza.setSaat_khoroj_aza(cursor1.getString(4));
列表_aza.add(modelAza);
}
adapter.notifyDataSetChanged();//添加
}

只需添加以下代码,在您的clickListner中,您需要在列表中添加相同的对象,添加后,您需要使用notifyDataSetChanged()将插入的项通知适配器。

btn__add__field.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                EditText edtname = findViewById(R.id.edt__person__name);
                EditText edt_semat_aza = findViewById(R.id.edt__person__semat);
                EditText edt_vorood_aza = findViewById(R.id.edt__person__enter);
                EditText edt_khorooj_aza = findViewById(R.id.edt__person__out);
                String name_aza = edtname.getText().toString();
                String semat_aza = edt_semat_aza.getText().toString();
                String saat_vorood_aza = edt_vorood_aza.getText().toString();
                String saat_khorooj_aza = edt_khorooj_aza.getText().toString();
                long result = dataBase_aza.insert_info(name_aza, semat_aza, saat_vorood_aza, saat_khorooj_aza,id);
                Toast.makeText(Activity_Gozaresh_giri.this, result + "", Toast.LENGTH_SHORT).show();

                /*
                * Adding entered data in list*/
                Model_aza mm=new Model_aza();
                mm.setName_aza(name_aza);
                mm.setSemat_aza(semat_aza);
                mm.setSaaat_vorood_aza(saat_vorood_aza);
                mm.setSaat_khorooj_aza(saat_khorooj_aza);

                list_aza.add(mm);
                rec_adaptor_aza.notifyDataSetChanged();

            }
        });