如何将数据从一个非活动类发送到另一个android

如何将数据从一个非活动类发送到另一个android,android,adapter,Android,Adapter,在我的android应用程序中,我在另一个Adatper中使用适配器。假设子级和父级适配器。在parentAdapter中,我对一个项目使用了onclick方法,并实例化子适配器。现在onClick在childAdapter中的视图上,我想向父Adapter发送信号并运行一个函数。 这是我的代码: // This is in parent layout holder.liker.setOnLongClickListener(new View.OnLongClickListene

在我的android应用程序中,我在另一个
Adatper
中使用
适配器。假设子级和父级
适配器
。在parent
Adapter
中,我对一个项目使用了
onclick
方法,并实例化子
适配器
。现在
onClick
在child
Adapter
中的视图上,我想向父
Adapter
发送信号并运行一个函数。
这是我的代码:

// This is in parent layout

        holder.liker.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
                holder.reaction_layout.setVisibility(View.VISIBLE);
                if(holder.cursor.getCount()>0)
                {
                    holder.show_reaction=true;
                    holder.tinyDB.putString("post_id",String.valueOf(holder.username.getTag()));
                    holder.tinyDB.putString("act_id",String.valueOf(holder.post_comment.getTag()));
                    while(holder.cursor.moveToNext())
                    {

                        holder.imageModelArrayList.add(new ReactionModel(holder.cursor.getString(1),holder.cursor.getString(3),holder.cursor.getString(2)));
                        holder.recyclerView.setAdapter(holder.adapter);  //Here i instantiate the child adapter
                    }
                }

                return true;
            }
        });
现在,这是子
适配器的单击功能:

holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                tinyDB.putString("image",imageModelArrayList.get(position).getImage_drawable());
                String react_id=String.valueOf(holder.title.getTag());
                String act_id=tinyDB.getString("act_id");
                String post_id=tinyDB.getString("post_id");
                NetworkController.postLikePojoClassCall(base64,Integer.parseInt(act_id),Integer.parseInt(react_id),Integer.parseInt(post_id)).enqueue(new retrofit2.Callback<PostLikePojoClass>() {
                    @Override
                    public void onResponse(Call<PostLikePojoClass> call, retrofit2.Response<PostLikePojoClass> response) {
                        if(response.isSuccessful()) {
                            System.out.println("response__  " + response.body().getSuccess());


                            }else{
                            System.out.println("response__  " + response.errorBody());
                            }
                        }


                    @Override
                    public void onFailure(Call<PostLikePojoClass> call, Throwable t) {
                        System.out.println("failure__  " + t.getMessage());

                    }
                });

            }
        });
holder.itemView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
tinyDB.putString(“image”,imageModelArrayList.get(position.getImage_drawable());
String react_id=String.valueOf(holder.title.getTag());
String act_id=tinyDB.getString(“act_id”);
String post_id=tinyDB.getString(“post_id”);
NetworkController.postlikepooclasscall(base64,Integer.parseInt(act_id),Integer.parseInt(react_id),Integer.parseInt(post_id)).enqueue(新改型2.Callback(){
@凌驾
公共void onResponse(呼叫,改装2.响应){
if(response.issusccessful()){
System.out.println(“response_u”+response.body().getSuccess());
}否则{
System.out.println(“response__”+response.errorBody());
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
System.out.println(“failure__”+t.getMessage());
}
});
}
});

在此单击中,我想向父级
适配器发送已单击该项的信号。

使用回调方法触发父级适配器

创建一个接口

public interface MyInterface{
    void click();
}
使父适配器实现接口

class YourParentAdapter extends RecyclerView.Adapter<YourViewHolder> implements MyInterface
现在,您可以在子适配器中使用来自父适配器的函数:

myInterface.click();

每当你遇到这样的情况时,你可能想考虑实现某种形式的建筑,比如什么样的建筑……你能举个例子吗?看看MVVMI从来没有用过这个…就我所知,我能用广播接收机发送信号吗?第三点有点让人困惑……你能再解释一下吗
myInterface.click();