我有一個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上得到結果 –