【发布时间】:2020-04-22 19:20:23
【问题描述】:
在回收站视图中从 firebase 数据库中检索数据,但现在我无法设置 onclicklistner 并转到其他活动并将值传递给其他活动。我已经尝试从适配器设置 onclcklistner,但它只是转到其他活动,我如何获取项目视图的位置并仅在新活动中发送它们的记录。
主要活动代码
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
RecyclerView.LayoutManager layoutManager;
FirebaseRecyclerAdapter<Category, CategoryViewHolder>adapter;
FirebaseDatabase database;
DatabaseReference reference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_recycler_view);
database = FirebaseDatabase.getInstance();
reference=database.getReference("Category");
recyclerView =(RecyclerView)findViewById(R.id.recyclerview);
recyclerView.setHasFixedSize(true);
layoutManager= new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
showlist();
}
private void showlist()
{
FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder<Category>()
.setQuery(reference,Category.class).build();
adapter= new FirebaseRecyclerAdapter<Category, CategoryViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull CategoryViewHolder categoryViewHolder, int i, @NonNull Category category) {
categoryViewHolder.textusername.setText(category.getUserName());
categoryViewHolder.textusesurname.setText(category.getUserSurname());
categoryViewHolder.textusernumber.setText(category.getUserNumber());
}
@NonNull
@Override
public CategoryViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item,parent,false);
return new CategoryViewHolder(view);
}
};
adapter.startListening();
adapter.notifyDataSetChanged();
recyclerView.setAdapter(adapter);
}
}
Category.java 的代码
package com.example.fantasyguru.Model;
public class Category {
private String userName;
private String userNumber;
private String userSurname;
public Category() {
}
public Category(String userName, String userNumber, String userSurname) {
this.userName = userName;
this.userNumber = userNumber;
this.userSurname = userSurname;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserNumber() {
return userNumber;
}
public void setUserNumber(String userNumber) {
this.userNumber = userNumber;
}
public String getUserSurname() {
return userSurname;
}
public void setUserSurname(String userSurname) {
this.userSurname = userSurname;
}
}
CategoryViewHolder 代码
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.example.fantasyguru.R;
public class CategoryViewHolder extends RecyclerView.ViewHolder{
public TextView textusername;
public TextView textusesurname;
public TextView textusernumber;
public CategoryViewHolder(@NonNull View itemView) {
super(itemView);
textusername=(TextView)itemView.findViewById(R.id.textView_username);
textusesurname=(TextView)itemView.findViewById(R.id.textView_usersurname);
textusernumber=(TextView)itemView.findViewById(R.id.textView_usernumber);
}
}
【问题讨论】: