2017-07-24 24 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的實例並更新適配器中的值。這將是最簡單的方法。

相關問題