【问题标题】:Android Edittext Putting edittext values into array and SharedpreferencesAndroid Edittext 将 edittext 值放入数组和 Sharedpreferences
【发布时间】:2021-05-30 22:02:46
【问题描述】:

我是软件方面的新手。我正在制作一个移动应用程序。在健身区。我有数组。当我按下前进和后退键时。已注册的 string 和 int 类型的数组按顺序显示。我做了这些,没问题。这就是我想要做的。页面上有一个edittext。用户将在edittext中输入重量,该重量将被保存。当再次打开应用程序时,按下前进按钮时,edittext中最后输入和保存的数据将依次出现。我该怎么做。我搜索了 sharedpreferences 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]);



    }

}

}

【问题讨论】:

    标签: java android arraylist android-edittext sharedpreferences


    【解决方案1】:

    我建议您查看SharedPreferences here 的 Android 开发人员指南。

    【讨论】:

      【解决方案2】:

      有两种方法可以从 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() 方法。这些方法将在您按下返回按钮之前调用,您从菜单中终止应用程序。

      例如:

          @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();
          }
      

      【讨论】:

        猜你喜欢
        • 2014-03-05
        • 2013-03-10
        • 1970-01-01
        • 1970-01-01
        • 2016-11-15
        • 1970-01-01
        • 1970-01-01
        • 2011-03-16
        • 2018-06-10
        相关资源
        最近更新 更多