我知道当您旋转设备时,视图和活动会被销毁,因此会创建活动和片段的新实例。
我把一个火柴传递给了一个片段,我假设它也被摧毁了。
下面的代码,这是在一个片段中运行的(我在onCreateView和onViewCreated方法中尝试过这个);
String getArgument = getArguments().getString("matchid");
DatabaseReference database = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref = database.child("Matches");
Query gameQuery = ref.orderByChild("gameID").equalTo(getArgument);
gameQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot singleSnapshot : dataSnapshot.getChildren()){
TextView homeTeamSetTxt = (TextView) getView().findViewById(R.id.txtRefHomeTeam);
我的问题是如何在旋转设备时保持状态?
我不想将用户锁定在任何一个方向。
答案 0 :(得分:2)
您可以覆盖
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("matchid", matchid);
}
并重新创建屏幕
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
dataGotFromServer = savedInstanceState.getString("matchid");
}
或者你可以使用viewmodels来保存设备轮换。
希望helpes