Сохранение выбранного элемента из ListView, когда приложение закрывается и перезапускается снова - PullRequest
1 голос
/ 04 апреля 2019

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

Я пытался использовать sharedPreferences для сохранения и восстановления значений выбранного элемента в просмотре списка, но безуспешно.

public static String SelectedName = null;
public static String SelectedPhNo = null;


// Set the ListViews OnItemClick Listener
            display_contacts1.setOnItemClickListener(new AdapterView.OnItemClickListener()
            {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id)
                {
                    //String namedisplay = arrayAdapter.getItem(position); //<<<<<<<<<< this gets the phone name
                    String namedisplay = myCursor.getString(myCursor.getColumnIndex(DataDBAdapter.COl_MYTABLE_PHONENAME));
                    String phoneno_display = myCursor.getString(myCursor.getColumnIndex(DataDBAdapter.COL_MYTABLE_PHONENUMBER));

                    Toast.makeText(view.getContext(), namedisplay + " Selected for Communication", Toast.LENGTH_SHORT).show();
                    Toast.makeText(view.getContext(), phoneno_display, Toast.LENGTH_SHORT).show();

                    // Set the selected contact variables
                    SelectedName = namedisplay;
                    SelectedPhNo = phoneno_display;
                 }
             });

 // Save the data here
    @Override
    public void onSaveInstanceState(Bundle outState)
    {
       super.onSaveInstanceState(outState);

      // Save the textview state 1st item is the key and 2nd item is the variable
      outState.putString("savedname", SelectedName);
      outState.putString("savedphNo", SelectedPhNo);
    }


 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        View view = inflater.inflate(R.layout.fragment_select_modem, container, false);
        btn_add = (Button) view.findViewById(R.id.btn_add);

        if(savedInstanceState != null)
        {
            savedInstanceState.getString("savedname");
            savedInstanceState.getString("savedphNo");
        }
    }
...