【发布时间】:2019-04-06 08:18:41
【问题描述】:
我想在我的viewholder 中添加一个onclicklistner,但我不知道如何在视图持有者中添加它,当用户单击项目时它应该传递值
我想在usersviewholder 中修复onclicklisner,我不知道怎么做,所以我需要一些专家的帮助。
我的代码如下所示
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String searchText = editText1.getText().toString();
firebaseUserSearch(searchText);
}
});
}
private void firebaseUserSearch(String searchText) {
// Query firebaseSearchQuery = reference.orderByChild("title").startAt("\uf8ff" + searchText).endAt(searchText + "\uf8ff");
String searchedText = searchText.trim();
Query firebaseSearchQuery = reference.orderByChild("title").startAt(searchedText ).endAt(searchedText + "\uf8ff");
FirebaseRecyclerOptions<Profile> options =
new FirebaseRecyclerOptions.Builder<Profile>()
.setQuery(firebaseSearchQuery, Profile.class)
.setLifecycleOwner(this)
.build();
FirebaseRecyclerAdapter firebaseRecyclerAdapter= new FirebaseRecyclerAdapter<Profile, MainActivity.UsersViewHolder>(options) {
@NonNull
@Override
public MainActivity.UsersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new MainActivity.UsersViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_item, parent,false));
}
@Override
protected void onBindViewHolder(@NonNull MainActivity.UsersViewHolder holder, int position, @NonNull Profile model) {
holder.setDetails(getApplicationContext(), model.getCon(), model.getTitle(), model.getDesc(), model.getImage());
}
};recyclerView.setAdapter(firebaseRecyclerAdapter);
}
public static class UsersViewHolder extends RecyclerView.ViewHolder{
View mView;
TextView title, desc;
ImageView image;
public UsersViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setDetails(Context ctx, String userName, String userStatus, String userImage){
title = (TextView) mView.findViewById(R.id.title);
desc = (TextView) mView.findViewById(R.id.desc);
image = (ImageView) mView.findViewById(R.id.image);
title.setText(userName);
desc.setText(userStatus);
Glide.with(ctx).load(userImage).into(image);
}
}
我想在 onclick 中有一个类似的意图
Uri webpage = Uri.parse(profiles.get(getAdapterPosition()).getDesc());
Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage);
PackageManager packageManager = context.getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(webIntent, 0);
boolean isIntentSafe = activities.size() > 0;
if (isIntentSafe) {
context.startActivity(webIntent);
}
else
{
context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/search?q=google&hl=en")));
}
}
【问题讨论】:
标签: android firebase android-recyclerview adapter android-viewholder