У меня есть приложение портала вакансий с двумя представлениями, одно из которых предназначено для пользователя для его собственного сообщения, а другое - publi c. Теперь я хочу, чтобы пользователь мог удалить свое сообщение с помощью прокрутки. выделенный идентификатор сообщения Я использовал помощник ItemTouch, он работает, но он удаляет все сообщения пользователя, я хочу, чтобы он удалил тот конкретный пост, который был проведен.
public class PostJobActivity extends AppCompatActivity {
private FloatingActionButton fabBtn;
private Toolbar toolbar;
private RecyclerView recyclerView;
private FirebaseAuth mAuth;
private DatabaseReference mJobPostDatabase;
private DatabaseReference mJobPost;
private DatabaseReference mPublicDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_post_job);
fabBtn = findViewById(R.id.fab_add);
toolbar = findViewById(R.id.toolbar_post_job);
setSupportActionBar(toolbar);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("POST JOB");
mAuth = FirebaseAuth.getInstance();
FirebaseUser mUser = mAuth.getCurrentUser();
final String uId = mUser.getUid();
mJobPostDatabase = FirebaseDatabase.getInstance().getReference().child("Job Post").child(uId);
mJobPost = FirebaseDatabase.getInstance().getReference().child("Job Post").child(uId);
mPublicDatabase = FirebaseDatabase.getInstance().getReference().child("Public database");
recyclerView = findViewById(R.id.recycler_job_post_id);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setStackFromEnd(true);
layoutManager.setReverseLayout(true);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(layoutManager);
fabBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), InsertJobPostActivity.class));
}
});
}
@Override
protected void onStart() {
super.onStart();
final FirebaseRecyclerAdapter<Data, MyViewHolder> adapter = new FirebaseRecyclerAdapter<Data, MyViewHolder>(
Data.class,
R.layout.job_post_item,
MyViewHolder.class,
mJobPostDatabase) {
@Override
protected void populateViewHolder(MyViewHolder viewHolder, Data model, int position) {
viewHolder.setJobDate(model.getDate());
viewHolder.setJobTitle(model.getTitle());
viewHolder.setCompany(model.getCname());
viewHolder.setDivison(model.getDname());
viewHolder.setAboutCompany(model.getAbtcompany());
viewHolder.setLocation(model.getClocation());
viewHolder.setExperience(model.getCexperience());
viewHolder.setAgeLimit(model.getLimit());
viewHolder.setJobSalary(model.getCsalary());
viewHolder.setContact(model.getContact());
viewHolder.setContactName(model.getNcontact());
viewHolder.setEmail(model.getEcompany());
}
};
recyclerView.setAdapter(adapter);
new ItemTouchHelper(iTemCallBack).attachToRecyclerView(recyclerView);
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
View myView;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
myView = itemView;
}
public void setJobTitle(String title) {
TextView mTitle = myView.findViewById(R.id.jobtitle);
mTitle.setText(title);
}
public void setJobDate(String date) {
TextView mDate = myView.findViewById(R.id.job_date);
mDate.setText(date);
}
public void setCompany(String company) {
TextView mCompany = myView.findViewById(R.id.job_company);
mCompany.setText(company);
}
public void setDivison(String divison) {
TextView mDivison = myView.findViewById(R.id.job_divison);
mDivison.setText(divison);
}
public void setAboutCompany(String aboutCompany) {
TextView mAboutCompany = myView.findViewById(R.id.job_about_company);
mAboutCompany.setText(aboutCompany);
}
public void setLocation(String location) {
TextView mLocation = myView.findViewById(R.id.job_location);
mLocation.setText(location);
}
public void setExperience(String experience) {
TextView mExperience = myView.findViewById(R.id.job_experience);
mExperience.setText(experience);
}
public void setAgeLimit(String ageLimit) {
TextView mAageLimit = myView.findViewById(R.id.job_age_limit);
mAageLimit.setText(ageLimit);
}
public void setJobSalary(String salary) {
TextView mJobSalary = myView.findViewById(R.id.job_salary);
mJobSalary.setText(salary);
}
public void setContact(String contact) {
TextView mContact = myView.findViewById(R.id.job_contact);
mContact.setText(contact);
}
public void setContactName(String contactName) {
TextView mContactName = myView.findViewById(R.id.job_contact_name);
mContactName.setText(contactName);
}
public void setEmail(String email) {
TextView mEmail = myView.findViewById(R.id.job_email);
mEmail.setText(email);
}
}
ItemTouchHelper.SimpleCallback iTemCallBack = new SimpleCallback(0,ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull ViewHolder viewHolder, @NonNull ViewHolder target) {
return false;
}
@Override
public void onSwiped(@NonNull ViewHolder viewHolder, int direction) {
FirebaseDatabase.getInstance().getReference().child("Job Post").removeValue();
}
};
}