我有一个RecyclerView.Adapter类的活动。 RecyclerView包含按钮。当单击该按钮时,我想更改主活动中定义的值并将其显示在主活动中定义的TextView中,否则我想刷新活动。我有一个循环器查看适配器类的活动,当按钮在适配器类中单击时我想刷新主要活动
我已经尝试了一些这样的代码:
我有一个RecyclerView.Adapter类的活动。 RecyclerView包含按钮。当单击该按钮时,我想更改主活动中定义的值并将其显示在主活动中定义的TextView中,否则我想刷新活动。我有一个循环器查看适配器类的活动,当按钮在适配器类中单击时我想刷新主要活动
我已经尝试了一些这样的代码:
你不需要在这种情况下重新创建活动。最好的解决方案是:
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();
}
您还可以在更新视图的方法添加参数。
通过构造函数传递这些TextView的实例并更新适配器中的值。这将是最简单的方法。
尝试Activity.recreate()? – Sheychan
重新创建一个builld方法? –
使用startActivityResult并在mainActivity的onActivityResult上得到结果 –