Android Edittext将Edittext值放入array和Sharedpreferences中



我是一个软件新手。我在做一个移动应用程序。在健身区。我有数组。当我按前进和后退键时。注册的字符串和int类型数组按顺序显示。我做了这些,没问题。这是我想做的。这页上有一篇编辑文字。用户将在edittext中输入权重,该权重将被保存。当再次打开应用程序时,当按下forward按钮时,最后在edittext中输入和保存的数据将按顺序出现。我搜索了sharepreferences sqlite。但我不能

我想将edittext中输入的数据添加到数组中,依次按下前进键,每一步都显示edittext中保存的数据。

public class MainActivity extends AppCompatActivity {
EditText edittxt_agirlik;
Button buton_save, goster_buton, button_ileri;
TextView judul,isi ,txtkaydedilen;
ImageView gambar;
int halaman =0;

private String veri_string;

String[] judul_artikel = new String[]{
"satu",
"dua",
"tiga",
"empat",
"lima"
};

String[] isi_artikel = new String[]{
"satu 6 54654654654",
"dua 3151515",
"tiga 6484616546",
"empat 514616514654",
"lima 64684684684"
};
int[] gambar_artikel = new int[]{
R.drawable.barbellrow,
R.drawable.benchpress,
R.drawable.militarypress,
R.drawable.pullover,
R.drawable.pullup,
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
judul = findViewById(R.id.judul);
isi = findViewById(R.id.isi);
gambar = findViewById(R.id.gambar);
edittxt_agirlik = findViewById(R.id.edittxt_agirlik);
buton_save = findViewById(R.id.buton_save);
button_ileri = findViewById(R.id.button_ileri);

SharedPreferences settings = getSharedPreferences("preference_name",MODE_PRIVATE);
veri_string = settings.getString("save_kg",null);
edittxt_agirlik.setText(veri_string);

judul.setText(judul_artikel[halaman]);
isi.setText(isi_artikel[halaman]);
gambar.setImageResource(gambar_artikel[halaman]);

buton_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

SharedPreferences settings = getSharedPreferences("preference_name",MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("save_kg",edittxt_agirlik.getText().toString());
editor.commit();

}
});

}

public void next(View view){

if (halaman<4){

halaman++;
judul.setText(judul_artikel[halaman]);
isi.setText(isi_artikel[halaman]);
gambar.setImageResource(gambar_artikel[halaman]);

}

}
public void prev(View view){
if (halaman>0){
halaman--;
judul.setText(judul_artikel[halaman]);
isi.setText(isi_artikel[halaman]);
gambar.setImageResource(gambar_artikel[halaman]);

}
}

}

我建议你看一下Android开发者SharedPreferences指南。

有两种方法可以从EditText

保存数据
  1. 在editText上添加文本更改监听器:
edittxt_agirlik.addTextChangedListener(new TextWatcher() { 
@Override 
public void onTextChanged(CharSequence s, int start, int before, int count){ 
SharedPreferences settings = getSharedPreferencess("preference_name",MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("save_kg",edittxt_agirlik.getText().toString());
editor.commit();
}

@Override 
public void beforeTextChanged(CharSequence s, int start, int count, int afterr) {
// TODO Auto-generated method stub
}

@Override 
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
  1. 你可以在关闭应用程序之前保存数据,通过实现AppCombat覆盖方法,如onBackPressed(), onStop(), onDestroy()方法。这些方法将在你按后退键之前被调用,你从菜单中终止应用程序。
  2. 例如:

@Override void onBackPressed(){
SharedPreferences settings = getSharedPreferencess("preference_name",MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("save_kg",edittxt_agirlik.getText().toString());
editor.commit();
}

最新更新