Когда я нажимаю на элемент в программе восстановления, я перехожу к DetailsActivity, но когда я возвращаюсь из DetailsActivity в MainActivity, я не вижу. элементов увеличилось в моем обзоре переработчика, но нет увеличения нет. элементов на firebase и когда я перезагружаю приложение нет. элементы возвращаются к нормальному состоянию в представлении переработчика.
MainActivity. java
public class MainActivity extends AppCompatActivity {
private Button button;
private Button button2;
EditText editText;
EditText editText2;
String TAG ="MyTag";
//private FirebaseDatabase mRootRef;
//private DatabaseReference mRefMain;
private ChildEventListener mchildeventlistener;
private RecyclerView mRecyclerView;
private mModelAdapter modelAdapter;
private List<User> mDataList;
DatabaseReference mRootRef= FirebaseDatabase.getInstance().getReference();
DatabaseReference mRefMain =mRootRef.child("Users");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.Senddata);
button2 = (Button) findViewById((R.id.GetData));
editText = (EditText) findViewById(R.id.Firstname);
editText2 = (EditText) findViewById(R.id.Agee);
mRecyclerView = findViewById(R.id.recyclerView);
//mRootRef = FirebaseDatabase.getInstance();
//mRefMain = mRootRef.getReference("Users");
mDataList = new ArrayList<>();
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
modelAdapter = new mModelAdapter(MainActivity.this, mDataList);
mRecyclerView.setAdapter(modelAdapter);
}
@Override
protected void onStart() {
super.onStart();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = editText.getText().toString();
int age = Integer.parseInt(editText2.getText().toString());
User user = new User(name,age);
String key = mRefMain.push().getKey();
mRefMain.child(key).setValue(user);
Toast.makeText(MainActivity.this, "Done", Toast.LENGTH_SHORT).show();
}
});
mchildeventlistener = new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
User user = dataSnapshot.getValue(User.class);
assert user != null;
user.setUid(dataSnapshot.getKey());
mDataList.add(user);
modelAdapter.notifyDataSetChanged();
//modelAdapter = new mModelAdapter(MainActivity.this,mDataList); //this will recreate the adapter with new data
//RecyclerView.setAdapter(modelAdapter); //Again set adapter to recyclerview
//Log.d(TAG, "OnChildAdded : Name " + user.getName());
//Log.d(TAG, "OnChildAdded : age " + user.getAge());
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
//User user=dataSnapshot.getValue(User.class);
//user.setUid(dataSnapshot.getKey());
//mDataList.remove(user);
//modelAdapter.notifyDataSetChanged();
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
mRefMain.addChildEventListener(mchildeventlistener);
/* button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
*/
}
@Override
protected void onDestroy(){
super.onDestroy();
mRefMain.removeEventListener(mchildeventlistener);
}
}
mModelAdapter. java
public class mModelAdapter extends RecyclerView.Adapter<mModelAdapter.MyViewHolder> {
private Context context;
private List<User> mDataList;
public static final String USER_KEY = "user_key";
public mModelAdapter(Context context, List<User> mDataList) {
this.context = context;
this.mDataList = mDataList;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View rootView= LayoutInflater.from(context).inflate(R.layout.recycler_view_item,parent,false);
return new MyViewHolder(rootView);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
final User user = mDataList.get(position);
holder.textView.setText(user.getName()+" | "+user.getAge());
holder.textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String uid=user.getUid("");
Intent intent = new Intent(context,DetailsActivity.class);
intent.putExtra(USER_KEY,uid);
context.startActivity(intent);
}
});
/* holder.textView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
String userId= user.getUid("");
Task<Void> voidTask = Utils.removeUser(userId);
voidTask.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(context,"Deleted Successfully",Toast.LENGTH_SHORT).show();
}
});
return true;
}
});
*/
}
@Override
public int getItemCount() {
return mDataList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder{
TextView textView;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.textView);
}
}
}
ПодробностиДеятельность. java
public class DetailsActivity extends AppCompatActivity {
private TextView mOutPuText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
mOutPuText=findViewById(R.id.Show_Text);
String uid= getIntent().getStringExtra(mModelAdapter.USER_KEY);
// DatabaseReference mRootRef= FirebaseDatabase.getInstance().getReference();
//DatabaseReference mRefMain =mRootRef.child("Users").child(uid);
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("Users").child(uid);
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
User user =dataSnapshot.getValue(User.class);
mOutPuText.setText(user.getName());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}