设备轮换维护状态

时间:2018-03-19 22:16:58

标签: android android-fragments

我知道当您旋转设备时,视图和活动会被销毁,因此会创建活动和片段的新实例。

我把一个火柴传递给了一个片段,我假设它也被摧毁了。

下面的代码,这是在一个片段中运行的(我在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);

我的问题是如何在旋转设备时保持状态?

我不想将用户锁定在任何一个方向。

1 个答案:

答案 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