簡體   English   中英

如何從活動的EditText獲取值以在另一個活動上使用它?

[英]How to get value from EditText on the activity to use it on another activity?

像這樣從EditText(editProtein)獲得價值

protected void protein() {
    EditText editCalorie = (EditText)findViewById(R.id.editCalorie);
    double pro = Double.parseDouble(editCalorie.getText().toString());
    EditText editProtein = (EditText)findViewById(R.id.editProtein);
    editProtein.setText(Double.toString(pro * 0.25 * 4));
}

在活動上使用它在另一個活動上? 我應該在活動和其他活動上使用什么代碼,謝謝

您可以在不同的Activity類之間共享數據的方式有很多種。 實際操作方式取決於您的特定應用程序以及數據應具有的生存時間。

第一種方法是通過putExtras()方法將其傳遞給您從第一個Activity啟動的新Activity ,以將任意信息發送到另一個活動。 要啟動第二個Activity ,您使用一個Intent ; 您正在做的是打包一些其他任意數據(在這種情況下,也許是您的蛋白質原料):

Bundle bundle = new Bundle();
bundle.putString(“some_protein_stuff″, textStringFromYourEditText);

Intent newIntent = new Intent(this.getApplicationContext(), ActivityClass2.class);
newIntent.putExtras(bundle);
startActivityForResult(newIntent, 0);

在ActivityClass2上,我們可以使用以下語法讀取此參數:

Bundle bundle = this.getIntent().getExtras();
String param1 = bundle.getString(“some_protein_stuff″);

但是,作為替代方案,您可能不希望考慮使用Shared Preferences ,而不是在調用數據時將數據傳遞給新的Activity 通過這種機制,您可以通過鍵值對非常輕松地在應用程序中存儲數據。 如果您有可能想要在各種其他Activity類中使用用戶通過EditText輸入的值,並且還希望在應用程序關閉並稍后再次打開時使用相同的值,則它仍然可用您只需將其從共享首選項中拉出即可。 首選項非常易於使用,並且有關於SO或其他地方的各種教程。

作為另一種選擇,您可以考慮通過創建擴展android.app.Application的類或“創建Singleton類”來實現“全局”共享數據,從而獲得與之類似的結果。

在啟動新的Activity時,將數據與Intent捆綁在一起的第一個最明顯的解決方案可能就是您所追求的,但是后兩個建議也可能會引起您的興趣,這取決於您的應用程序如何工作以及您希望數據如何被使用堅持。

您可以將值傳遞給另一個活動。 就像是:

intent.putExtra("CALORIE", calorie);
intent.putExtra("PROTEIN", protein);

與此對應,在要使用這些值的活動中,使用類似以下內容的方法:

Bundle extras = getIntent().getExtras();
if(extras !=null) {
    double calorie = extras.getDouble("CALORIE");
    double protein= extras.getDouble("PROTEIN");
}

暫無
暫無

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

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