0
我有一个RecyclerView
我的片段,显示我从FTP服务器加载某些文件。 我试图为每个项目设置一个onClickListener
,因此当它被点击时,会显示一个DialogFragment
,用户可以选择是否下载或打开文件。
我的问题是:
我需要发送到我的对话框两件事情:传递数据点击RecyclerView.Adapter
- 目标片段,这将下载/用户选择做什么后打开该文件。这可以很容易不
setTargetFragment()
,唯一的问题是我没有访问我的RecyclerView.ViewHolder
内的片段。 - 要下载/打开的文件的名称。这样对话框将把它发送到目标片段。这里的问题是我没有访问
RecyclerView.ViewHolder
中的数据集,因为它的静态数据集和我的数据集都没有。
为什么ViewHolder
如果有一个更好的地方,要做到这一点,我很乐意听到的。我试图在我的RecyclerView.ViewHolder
内尝试这个功能的原因是它可以访问该位置(被点击的项目)。我曾考虑过在onBindViewHolder()
上这样做,但是我有权访问数据集但不是位置。
我的适配器代码:
public class FilesAdapter extends RecyclerView.Adapter<FilesAdapter.ViewHolder> {
public final String TAG = "FILES_ADAPTER";
private FTPFile[] dataset;
//some methods and stuff...
public static class ViewHolder extends RecyclerView.ViewHolder {
public final String TAG = "FILES_VH";
private final TextView nameTextView;
private final TextView infoTextView;
private final ImageView imageView;
public ViewHolder(View v) {
super(v);
// Define click listener for the ViewHolder's View.
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "Element " + getPosition() + " clicked.");
//here i want to open the dialog fragment and start downloading/openning
}
});
nameTextView = (TextView) v.findViewById(R.id.fileNameTextView);
infoTextView = (TextView) v.findViewById(R.id.fileInfoTextView);
imageView = (ImageView) v.findViewById(R.id.fileImageView);
}
public TextView getNameTextView() {
return nameTextView;
}
public ImageView getImageView() {
return imageView;
}
public TextView getInfoTextView() {
return infoTextView;
}
}
}
帮助将非常感激,感谢。
? – pskink
怎么这么想帮助我 –
检查了我正在谈论的课程文档? – pskink