- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试让自定义对话框的 OnClick 删除并更新从 RecyclerView 单击的项目。
final Dialog rightDialog = new Dialog(context1);
...
TextView textOKRight = (TextView) rightDialog.findViewById(R.id.text_ok);
textOKRight.setText("NEXT");
textOKRight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// MainAdapter.ViewHolder ccd = new MainAdapter.ViewHolder(itemView, listener);
// ccd.removeCaller();
rightDialog.dismiss();
}
});
rightDialog.show();
主适配器
public class MainAdapter extends RecyclerView.Adapter<MainAdapter.ViewHolder>{
..
private static ViewHolder.IndividualClickListener mListenerCallback;
private static ViewHolder.IndividualClickListener mListener;
private MainAdapter mMyAdapter;
public AnimatorSampleActivity animatorActivity;
public MainAdapter(Context context, ArrayList<Question> dataSet) {
mContext = context;
questions = dataSet;
...
}
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public IndividualClickListener mListener;
...
public ViewHolder(View itemView, IndividualClickListener listener) {
super(itemView);
mListener = listener;
image = (ImageView) itemView.findViewById(R.id.imageMic);
imageOne = (ImageView) itemView.findViewById(R.id.imageOne);
text = (TextView) itemView.findViewById(R.id.text);
itemView.setOnClickListener(this);
image.setOnClickListener(this);
}
//////THIS IS THE METHOD I WOULD LIKE TO CALL FROM THE DIALOG///////
public void removeCaller() {
mListener.remove1(getLayoutPosition());
Log.d(TAG, "Main Adapter Called remove1 from removeCaller()");
}
@Override
public void onClick(View v) {
if (v instanceof ImageView) {
} else {
}
}
public interface IndividualClickListener {
void onTomato(ImageView callerImage, int position);
void onPotato(View caller, int position);
void remove1(int position);
void onDialogClick(TextView textOKRight);
}
}
@Override
public int getItemCount() {
return questions.size();
}
@Override
public void onBindViewHolder(final MainAdapter.ViewHolder holder, final int position) {
Question currentQuestion = questions.get(position);
///I CREATED A DIALOG HERE, Dialog.Builder AND IM ABLE TO HAVE THE DIALOG DIMISS AND REMOVE THE ITEM, BUT I CANT FIGURE OUT HOW TO DO IT FROM MY CUSTOM DIALOG OUTSIDE MainAdapter////
Picasso.with(mContext).load(currentQuestion.drawableId).into(holder.getImageView());
Picasso.with(mContext).load(currentQuestion.iconId).into(holder.getImageView1());
holder.getImageView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (v instanceof ImageView) {
//holder.removeCaller();
//mAdapterCallback.remove1(position);
mListenerCallback.onTomato((ImageView) v, position);
Log.d(TAG, "Main Adapter Called remove from OnBindViewHolder"+""+position);
}else{
mListenerCallback.onPotato((ImageView) v, position);
}
}
});
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.layout_list_item, parent, false);
final MainAdapter.ViewHolder vh = new ViewHolder(v, new MainAdapter.ViewHolder.IndividualClickListener(){
@Override
public void onTomato(ImageView callerImage, int position) {
Log.d(TAG, "Main Adapter Called OnTomato OnCreateVIewHolder");
}
@Override
public void onPotato(View caller, int position) {
}
@Override
public void remove1(int position) {
questions.remove(position);
notifyItemRemoved(position);
Log.d(TAG, "Main Adapter Called remove1 from OnCreaterViewHolder" + position);
}
@Override
public void onDialogClick(TextView textOKRight) {
}
});
return vh;
}
public interface callerCallBack{
.....
}
}
更新
public class NewCustomDialog extends Dialog {
private static dialogCallerCallBack mdialogCallerCallBack;
private MainAdapter.ViewHolder.IndividualClickListener listener;
public NewCustomDialog(Activity a, dialogCallerCallBack mdialogCallerCallBack, Context dContext, TextView dialogTitleRight, TextView rightMsgRight, TextView rightAnswerRight, TextView textOKRight, ImageView imageRight) {
super(a);
this.dialogTitleRight = dialogTitleRight;
this.rightAnswerRight = rightAnswerRight;
this.rightMsgRight = rightMsgRight;
this.textOKRight = textOKRight;
this.imageRight = imageRight;
this.dContext = dContext;
//pass this so it can be used
this.mdialogCallerCallBack=mdialogCallerCallBack;
this.c =a;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//final Dialog rightDialog = new Dialog(context);
getWindow().setBackgroundDrawable(new ColorDrawable(0));
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.mt_alert_right_dialog);
setCanceledOnTouchOutside(false);
setCancelable(false);
TextView dialogTitleRight = (TextView) findViewById(R.id.txt_title);
TextView rightMsgRight = (TextView) findViewById(R.id.right_msg);
TextView rightAnswerRight = (TextView) findViewById(R.id.right_answer);
final TextView textOKRight = (TextView) findViewById(R.id.text_ok);
ImageView imageRight = (ImageView) findViewById(R.id.image);
textOKRight.setText("NEXT");
textOKRight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mdialogCallerCallBack.onDialogClick(((TextView)textOKRight));
}
});
}
public interface dialogCallerCallBack{
void onDialogClick(TextView textOKRight);
}
}
错误
Process: jp.wasabeef.example.recyclerview, PID: 28523
java.lang.NullPointerException at jp.wasabeef.example.recyclerview.NewCustomDialog$1.onClick(NewCustomDialog.java:82)
第82行是
mdialogCallerCallBack.onDialogClick(((TextView)textOKRight));
最佳答案
如果您的问题是使用 getFragmentManaget 来实现,请执行以下操作:创建
FragmentManager fm = getFragmentManager();
在您的 Fragment 中并将其传递给您的 RecyclerView
然后再次将其传递给您的 ViewHolder
注意:传递意味着将它作为参数发送给构造函数
关于android - 在 RecyclerView 的 onBindViewHolder 中调用的自定义对话框按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31685842/
为了让我的代码几乎完全用 Jquery 编写,我想用 Jquery 重写 AJAX 调用。 这是从网页到 Tomcat servlet 的调用。 我目前情况的类似代码: var http = new
我想使用 JNI 从 Java 调用 C 函数。在 C 函数中,我想创建一个 JVM 并调用一些 Java 对象。当我尝试创建 JVM 时,JNI_CreateJavaVM 返回 -1。 所以,我想知
环顾四周,我发现从 HTML 调用 Javascript 函数的最佳方法是将函数本身放在 HTML 中,而不是外部 Javascript 文件。所以我一直在网上四处寻找,找到了一些简短的教程,我可以根
我有这个组件: import {Component} from 'angular2/core'; import {UserServices} from '../services/UserService
我正在尝试用 C 实现一个简单的 OpenSSL 客户端/服务器模型,并且对 BIO_* 调用的使用感到好奇,与原始 SSL_* 调用相比,它允许一些不错的功能。 我对此比较陌生,所以我可能会完全错误
我正在处理有关异步调用的难题: 一个 JQuery 函数在用户点击时执行,然后调用一个 php 文件来检查用户输入是否与数据库中已有的信息重叠。如果是这样,则应提示用户确认是否要继续或取消,如果他单击
我有以下类(class)。 public Task { public static Task getInstance(String taskName) { return new
嘿,我正在构建一个小游戏,我正在通过制作一个数字 vector 来创建关卡,该数字 vector 通过枚举与 1-4 种颜色相关联。问题是循环(在 Simon::loadChallenge 中)我将颜
我有一个java spring boot api(数据接收器),客户端调用它来保存一些数据。一旦我完成了数据的持久化,我想进行另一个 api 调用(应该处理持久化的数据 - 数据聚合器),它应该自行异
首先,这涉及桌面应用程序而不是 ASP .Net 应用程序。 我已经为我的项目添加了一个 Web 引用,并构建了各种数据对象,例如 PayerInfo、Address 和 CreditCard。但问题
我如何告诉 FAKE 编译 .fs文件使用 fsc ? 解释如何传递参数的奖励积分,如 -a和 -target:dll . 编辑:我应该澄清一下,我正在尝试在没有 MSBuild/xbuild/.sl
我使用下划线模板配置了一个简单的主干模型和 View 。两个单独的 API 使用完全相同的配置。 API 1 按预期工作。 要重现该问题,请注释掉 API 1 的 URL,并取消注释 API 2 的
我不确定什么是更好的做法或更现实的做法。我希望从头开始创建目录系统,但不确定最佳方法是什么。 我想我在需要显示信息时使用对象,例如 info.php?id=100。有这样的代码用于显示 Game.cl
from datetime import timedelta class A: def __abs__(self): return -self class B1(A):
我在操作此生命游戏示例代码中的数组时遇到问题。 情况: “生命游戏”是约翰·康威发明的一种细胞自动化技术。它由一个细胞网格组成,这些细胞可以根据数学规则生存/死亡/繁殖。该网格中的活细胞和死细胞通过
如果我像这样调用 read() 来读取文件: unsigned char buf[512]; memset(buf, 0, sizeof(unsigned char) * 512); int fd;
我用 C 编写了一个简单的服务器,并希望调用它的功能与调用其他 C 守护程序的功能相同(例如使用 ./ftpd start 调用它并使用 ./ftpd stop 关闭该实例)。显然我遇到的问题是我不知
在 dos 中,当我粘贴此命令时它会起作用: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" https://google.
在 dos 中,当我粘贴此命令时它会起作用: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" https://google.
我希望能够从 cmd 在我的 Windows 10 计算机上调用 python3。 我已重新安装 Python3.7 以确保选择“添加到路径”选项,但仍无法调用 python3 并使 CMD 启动 P
我是一名优秀的程序员,十分优秀!