[英]How to get an EditText value to go from one activity to another as an int
[英]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");
}
EditText擴展了具有getText方法的TextView。
http://developer.android.com/reference/android/widget/TextView.html#getText%28%29
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.