簡體   English   中英

在執行其他活動后如何保存EditText的值

[英]how to save EditText's value after performing an other activity

我的第一個活動帶有兩個帶有提示提示的EditText字段,分別是名字和姓氏,當我進入第二個活動並通過小部件按鈕返回到第一個活動時,第一個活動中的EditText字段將被重置。

很簡單,我希望我的EditText字段在我的第一個活動中保持不變,因為我從第二個活動中重新訪問了第一個活動。

我的MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



}

public void onButton1Click(View v)
{

    Intent intent = new Intent (this,MainActivity2.class);
    startActivity(intent);

}

}

我的MainActivity2.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

}

}

解決方案-我將第二項活動更改為此。 剛剛添加了對我的Button的引用,並通過onBackPressed()應用了onClickListener; 碼。

    setContentView(R.layout.activity_main2);  

     Button button = (Button)findViewById(R.id.button3);   //gave reference of button in second activity
    button.setOnClickListener(new View.OnClickListener() {  //and applied an onClickListener with code onBackpressed();
        public void onClick(View v) {
            onBackPressed();
            // Code here executes on main thread after user presses button
        }
    });
}

非常感謝@Narendra Sorathiya的指導。

如下所示打開secondActivity,

Intent i = new Intent(A.this,B.class);
startActivity(i);
finish();

Intent i = new Intent(A.this,B.class);
startActivityForResult(i,1);

不要從第二活動中打開第一活動,只需要向后按即可。

試試這個在活動頂部聲明所有變量

public static final String MyPREFERENCES = "MyPrefs" ;
public static final String FNAME = "fname";
public static final String LNAME = "lname";

SharedPreferences sharedpreferences;

轉到下一個活動時編寫此代碼

sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

// store login data in sharedpreferences
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(FNAME, edittext.getText());
editor.putString(LNAME, edittext2.getText());
editor.commit(); //save data in  sharedpreferences

綁定控件后,在您的oncreate方法中編寫此代碼

並像這樣從sharedprefrence獲取數據

String fname= prefs.getString(FNAME, "");
String fname= prefs.getString(LNAME, "");

而不是像這樣將其設置為您的editext

editext.setText(fname);
editext2.setText(lname);

如有任何疑問,請通知我

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM