Не могу получить данные из общего предпочтения после закрытия Activity - PullRequest
0 голосов
/ 17 февраля 2020

Я не могу получить свои сохраненные данные (Arraylist с Set) из общего предпочтения при запуске или возобновлении действия, я помещаю сообщение Toast, которое появляется при открытии и закрытии действия, чтобы убедиться, что метод работает, но все еще получает пустые результаты, и мой массив пуст и никогда не сохранял никаких данных при выходе в предыдущую активность, даже нажав кнопку назад или кнопку, чтобы отправить меня обратно, пожалуйста, найдите коды ниже:

Обратите внимание, что я действительно открыл папку приложения в хранилище, и оно полностью пусто, общие настройки никогда не сохраняются в моем телефоне, мне нужно, чтобы он оставался в памяти устройства, пока пользователь не стерет его кнопкой.

package com.cupheadcorp.domeno;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;

public class Activity_players_Score extends AppCompatActivity {



    ArrayAdapter<String> aa;
    ArrayList<String> data = new ArrayList<String>();
    ArrayList<String> dataold = new ArrayList<String>();
    Set<String> set = new HashSet<String>();
    SharedPreferences sp;






    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_players__score );




        Button backBtn = findViewById( R.id.backbtn );
        backBtn.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent backintent = new Intent( Activity_players_Score.this , MainActivity.class );
                backintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
                saveData();
                startActivity( backintent );
            }
        } );


        sp=getSharedPreferences("test", Context.MODE_PRIVATE);
        Button getScroreBtn = findViewById( R.id.getscoreBtn );
        getScroreBtn.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if ( !dataold.isEmpty())
                    {
                        String compartionSTR = dataold.toString();
                        if (!data.contains( compartionSTR )){
                            data.addAll( dataold );
                            data.add("got items from old ");
                        }

                    }

                else
                {
                    Bundle bundle = getIntent().getExtras();
                    String player1 = bundle.getString( "player1" );
                    String player2 = bundle.getString( "player2" );
                    String player3 = bundle.getString( "player3" );
                    String player4 = bundle.getString( "player4" );
                    data.add( player1 );
                    data.add( "new input" );
                    //data.add( player2 );
                    //data.add( player3 );
                    //data.add( player4 );
                }



                 //   if(!dataold.contains( data )) {
                 //       dataold.addAll( data );
                 //   }
                  //  else {
                 //       dataold.clear();
                 //   }


                    final ListView listView2 = findViewById( R.id.listteam1 );
                    aa = new ArrayAdapter<String>( Activity_players_Score.this, android.R.layout.simple_list_item_1, data );
                    listView2.setAdapter( aa );
                    aa.notifyDataSetChanged();
                    saveData();







            }
        } );



    }


    private void saveData(){

        SharedPreferences.Editor editor = sp.edit();
        if (set.isEmpty()) {
            Toast.makeText(Activity_players_Score.this, "saving to shared pref", Toast.LENGTH_LONG).show();

        }
        set.addAll(data);
        editor.putStringSet("key", set);
        editor.commit();



    }

    private void loadData() {

        sp.getStringSet( "key", set );
        dataold.addAll( set );
        if (dataold.isEmpty()) {
            Toast.makeText(Activity_players_Score.this, "loading from shared ", Toast.LENGTH_LONG).show();

        }

    }




    @Override
    public void onStart () {
        loadData();
        super.onStart();

    }

    @Override
    public void onStop () {
        saveData();
        super.onStop();

    }
    @Override public void onResume(){
        super.onResume();
    }

    public void loaditemlistview (){


    }












}
...