繁体   English   中英

我有一个带有recycler视图适配器类的活动,当在适配器类中单击按钮时我想刷新主要活动

[英]I have an activity with recycler view adapter class, when button clicked in adapter class I want to refresh the main activity

我有一个使用RecyclerView.Adapter类的活动。 RecyclerView包含按钮。 单击该按钮时,我想更改主活动中定义的值,并在主活动中定义的TextView中显示它,否则我想刷新活动。

我已经尝试过一些代码:

在这种情况下,您无需重新创建活动。 最好的解决方案是:

  1. 声明一个接口。
  2. 在Activity中实现它(这里实现对TextView的更新等)。
  3. 将实现接口的对象传递给适配器。
  4. 在适配器中调用此接口上的方法。

以下是示例: https//stackoverflow.com/a/32720879/2528967

YourActivity extends Activity implements YourAdapter.ClickCallback{

@override
oncreate(Bundle bundle){
 // initialize views 
 YourAdapter adapter = new YourAdapter(this);
 // do something with your adapter
}

@Override
public void updateView(){
//update your views here
}   

}

//In Recycler Adapter pass ClickCallBack As parameter
class YourAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

 private ClickCallBack clickCallBack;

 public YourAdapter(ClickCallBack clickCallBack){
 this.clickCallBack=clickCallBack;
 }

 //ClickCallback Interface
interface ClickCallBack {
 void updateView();
}

 //In your ButtonClick
  clickCallBack.updateView();

}

您还可以在updateView方法中添加参数。

通过构造函数传递那些TextView的实例,并更新适配器中的值。 那将是最简单的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM