これは私が見落としているが、私が研究したすべての記事と比較して、本当に基本的なものだと確信しています。EditPextをSharedPreferencesの既存のデータで塗りつぶす
私は、ユーザー名とパスワードの両方にedittextを持つDialogPreferenceと、データを環境設定に保存するボタンを持っています。作成時に、私は設定を照会し、編集されるべき以前に保存されたデータでedittextボックスを埋める、そうでなければボックスを空白のままにしたいと思います。現在のところ、以前のデータが存在しない場合、問題はありませんが、データが存在する場合、DialogPreferenceを開くときにアプリケーションがクラッシュします。
マイDialogPreferenceコード:
public class AccDialog extends DialogPreference implements DialogInterface.OnClickListener {
private EditText mUserbox, mPassbox;
CharSequence mPassboxdata, mUserboxdata;
private Context mContext;
private int mWhichButtonClicked;
public AccDialog(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
}
@Override
protected View onCreateDialogView() {
// Access default SharedPreferences
@SuppressWarnings("unused")
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(mContext);
// Register listener
final OnCheckedChangeListener mShowchar_listener;
// Run the following methods onCreate
existingData();
@SuppressWarnings("unused")
LinearLayout.LayoutParams params;
LinearLayout layout = new LinearLayout(mContext);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setPadding(10, 10, 10, 10);
layout.setBackgroundColor(0xFF000000);
mUserbox = new EditText(mContext);
mUserbox.setSingleLine(true);
mUserbox.setSelectAllOnFocus(true);
mPassbox = new EditText(mContext);
mPassbox.setSingleLine(true);
mPassbox.setSelectAllOnFocus(true);
layout.addView(mUserbox);
layout.addView(mPassbox);
return layout;
}
private void existingData() {
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(mContext);
String Unamedata = pref.getString("usernamekey", "");
String Pworddata = pref.getString("passwordkey", "");
if((Unamedata.length() != 0) && (Pworddata.length() != 0)) {
mUserbox.setText(Unamedata);
mPassbox.setText(Pworddata);
}
}
}
美しい。おかげさまで働きました。また、私はかなりプログラミングに新しいと自己学習です。私はlogcatを立ち上げ、それをフィルタリングすることに精通しています、実際に表示されている情報の何かを完全には確信していません。それをすべて理解することは、todoリストにある。 – Ronnie