2017-07-24 25 views
3

我有一个RecyclerView.Adapter类的活动。 RecyclerView包含按钮。当单击该按钮时,我想更改主活动中定义的值并将其显示在主活动中定义的TextView中,否则我想刷新活动。我有一个循环器查看适配器类的活动,当按钮在适配器类中单击时我想刷新主要活动

我已经尝试了一些这样的代码:

+0

尝试Activity.recreate()? – Sheychan

+0

重新创建一个builld方法? –

+0

使用startActivityResult并在mainActivity的onActivityResult上得到结果 –

回答

0

你不需要在这种情况下重新创建活动。最好的解决方案是:

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

这里是例子: https://stackoverflow.com/a/32720879/2528967

0
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(); 

} 

您还可以在更新视图的方法添加参数。

0

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

相关问题