Заполнить EditTextPreference программно при редактировании - PullRequest
0 голосов
/ 31 октября 2018

Ниже приведена часть моего кода, которая автоматически устанавливает номер телефона.

  @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        Preference connectionPref = findPreference(key);
        if (connectionPref != null) {
            connectionPref.setSummary(sharedPreferences.getString(key, ""));
        }

        //get phone number automatically
        if (key.equals("pref_phone_number")) {
            if (ContextCompat.checkSelfPermission(MainActivity.getContext(), android.Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {

            }

            TelephonyManager tMgr = (TelephonyManager) MainActivity.getContext().getSystemService(Context.TELEPHONY_SERVICE);
            String mPhoneNumber = tMgr.getLine1Number();
            connectionPref.setSummary(mPhoneNumber);
            SharedPreferences.Editor editor = sharedPreferences.edit();
            editor.putString(key, mPhoneNumber);
            editor.commit();
        }

    }

Возможно ли заполнить EditTextPreference программно mPhoneNumber, когда на него нажмут и откроется окно редактирования? Я хочу дать пользователю возможность редактировать свои номера, чего сейчас они не могут.

1 Ответ

0 голосов
/ 31 октября 2018

Можете ли вы попробовать, как это,

EditTextPreference pref = (EditTextPreference)PreferenceManager.findPreference("edit");
EditText prefEditText = pref.getEditText();
prefEditText.setInputType(InputType.TYPE_CLASS_TEXT);
prefEditText.setSingleLine(true);
prefEditText.setText("yourText");
...