Я хочу пригласить пользователя его имя в AlertDialogue, сохранить его имя в разделе «Общие преференции» и установить его имя в текстовом виде, поэтому, когда он вернется, он сможет увидеть его имя. Пока у меня есть диалог, но я не уверен, что он сохраняется, потому что текстовое представление показывает что-то вроде «Android Widget EditText (9o179 ... и т. Д.)« Что я делаю неправильно? Код:Android: сохранение и чтение данных с пользовательского ввода?
String name; //global
TextView user;
OnCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonCreate();
preferences();
togglePlay();
}
TogglePlay Метод:
public void togglePlay() {
init.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
KeysOn();
} else {
KeysOff();
}
}
});
}
public void KeysOn() {
Toast.makeText(getApplicationContext(), getString(R.string.ToastToggleOn), Toast.LENGTH_SHORT).show();
user.setText(name);
//etc
}
Метод предпочтения называется в OnCreate:
public void preferences(){
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
name= settings.getString("name",name);
saveName();
data = settings.getString("stage", "Indoors");
String backGround = settings.getString("stage", "Indoors");
if (backGround.equals("Indoors")) {
Picasso.with(this).load(R.drawable.shocked_crowd).fit().centerCrop().into(palco);
Toast.makeText(getApplicationContext(), getString(R.string.stageIndoors), Toast.LENGTH_LONG).show();
}
if (backGround.equals("Street")) {
Picasso.with(this).load(R.drawable.coins).fit().centerCrop().into(palco);
Toast.makeText(getApplicationContext(), getString(R.string.stageStreet), Toast.LENGTH_LONG).show();
}
}
EDIT: отсутствует код:
public void popUp(){
AlertDialog.Builder questionName = new AlertDialog.Builder(this);
questionName.setTitle(" Enter your name ");
EditText input=new EditText(this);
name=input.toString();
LinearLayout.LayoutParams lp= new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
input.setLayoutParams(lp);
questionName.setView(input);
questionName.setNegativeButton(" cancel ", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int id){
}
});
questionName.setPositiveButton(" done ", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int id){
}
});
AlertDialog dialog = questionName.create();
dialog.show();
}
public void saveName(){
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor editor = settings.edit();
editor.putString("name", name);
editor.commit();
}
Shijil, он работал, спасибо , но имя не сохранено ... Я вышел из приложения, вернулся и ничего ... это другой вопрос ? Извините, я учусь :) – glassraven