在其上设置了recycerView的活动,并且活动开始片段以插入新数据。
getSupportFragmentManager()
.beginTransaction()
.setCustomAnimations(R.anim.dialog_drop, R.anim.dialog_rise_up)
.replace(R.id.frame_layout, dropDownDialogue)
.addToBackStack(null)
.commit();`
片段具有一个保存按钮,该按钮结束片段如下:
save.setOnClickListener(new View.OnClickListener() {
@Override
public void Onclick(View v){
//extract data from user.
adapter.notifyDataSetChanged();
getActivity().getSupportFragmentManager().popBackStackImmediate();
}
});
问题是直到重新启动Activity后,recyclerView才更新
onResume
和onStart
与adapter.notifyDataSetChanged();
一起存在
答案 0 :(得分:2)
https://developer.android.com/guide/components/activities/activity-lifecycle
如果您使用的是Fragment
,它应该位于某些Activity
的本地(希望是存放您的RecyclerView
的那个)。从该Fragment
内部,您可以使用Activity
访问包含它的getActivity()
以及其任何公共成员和方法。
有关更多信息,请参见this SO question。
答案 1 :(得分:0)
按下保存按钮时,您可以使用int[][] arr = new int[6][];
for(int i =0; i<6; i++)
{
arr[i] = new int[1];
}
arr[0][0] = 100;
arr[1][0] = 50;
arr[2][0] = 60;
arr[3][0] = 200;
arr[4][0] = 10;
arr[5][0] = 220;
int[][] sortedArr = arr.OrderBy(x => x[0]).ToArray();
for(int i =0; i<6; i++)
{
Console.WriteLine(sortedArr[i][0]);
}
接收通知。例如,将其注册到您的BroadcastReciever
中:
Activity
使用private void registerReciver() {
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// broadcast receiver is fired reload your data here
}
};
IntentFilter intentFilter = new IntentFilter("action");
this.registerReceiver(receiver, intentFilter);
}
方法调用registerReciver();
,现在您可以通过onCreate()
按钮启动它:
save
按下 Intent intent = new Intent();
intent.setAction("action");
getActivity().sendBroadcast(intent);
按钮后,应调用save
。现在,您可以再次获取数据并重新加载。即使需要,即使使用onReceive
,也可以将数据传递到Intent
。