2014-03-29 97 views
0

我是android新手。我從MainActivity獲取一個字符串和一個數值作爲輸入。 按下按鈕後,調用以下方法調用第二個活動。 我是否正確傳遞值? 如果是,我如何獲得這些值供第二項活動使用並打印出來?如何將整數傳遞給Android中的新活動?

public void sendMessage(View view) { 
    Intent intent = new Intent(this, DisplayMessageActivity.class); 
    EditText editText1 = (EditText) findViewById(R.id.name); 
    EditText editText2 = (EditText) findViewById(R.id.ma); 
    String message = "Hi ! " + editText1.getText().toString(); 
    int i = Integer.parseInt(editText2.getText().toString()); 
    intent.putExtra("lol",message); 
    startActivity(intent); 
} 

P.S.我知道我根本不傳遞整數。我不知道該怎麼做。請幫忙!

+0

可以使用訪問意圖的其他活動'getIntent()' – BadIdeaException

+1

檢查http://stackoverflow.com/questions/4233873/how-to-get-extra-data-from-intent-in-android –

+1

我需要在第二個活動中收到一個整數。我怎麼做? – saruftw

回答

0

從新Activity你應該叫getIntent()https://developer.android.com/reference/android/app/Activity.html#getIntent()

一旦你有了Intent你必須調用getIntExtra(String, int)https://developer.android.com/reference/android/content/Intent.html#getIntExtra(java.lang.String,%20int)

在你的情況下,來自新的活動是這樣的:

Intent intent = getIntent(); 
int lol = intent.getIntExtra("lol", 0); 

或更短:

int lol = getIntent().getIntExtra("lol", 0); 

這「0」是如果額外的「笑」不整型的默認值不存在。

+1

謝謝!馬上解決。但我仍然不明白使用'0'。爲什麼當我們已經定義了額外的「哈哈」時就需要它。 – saruftw

+0

如果由於某些原因,額外不存在,那麼lol = 0。這樣它就有一個默認值,而且不僅僅是不存在的。如果你確定總是有額外的「大聲笑」,但只有在你確信的時候纔是沒用的。 – ArianJM

0

你只使用這一個整數值 在第二活動....

int i = getIntent().getIntExtra(SendingStringName, 0); 
    (or) 
    String progress = getIntent().getStringExtra(SendingStringName); 
    (or) 
    ArrayList< String> progress = getIntent().getStringArrayListExtra(name); 
+0

爲什麼你需要爲'String'或'ArrayList'額外提供示例。只要'getIntExtra'例子就足夠了。 – AndyFaizan

+0

不是getIntent()應該只使用一次,然後我們提取所有數據?你能用這種方式解釋嗎? – saruftw

+0

你可以使用這些類型的數據提取我只是發佈這些方式,你可以發送數據我發佈了一些示例方法來提取其他數據它是額外的信息哥們你今後可能會使用這個只有我把這個...你只是爲您的解決方案採取第一線 –

0

發送數據:

EditText editText1 = (EditText) findViewById(R.id.name); 
EditText editText2 = (EditText) findViewById(R.id.ma); 
String message = "Hi ! " + editText1.getText().toString(); 
int i = Integer.parseInt(editText2.getText().toString()); 

Bundle param = new Bundle(); 
param.putString("greeting",message); 
param.putInteger("NumberInteger",i); 

Intent intent = new Intent(this, DisplayMessageActivity.class); 
intent.putExtras(param); 
startActivity(intent); 

接受他們: 課堂DisplayMessageActivity.java做:

Intent it = getIntent(); 
Bundle param = it.getExtras(); 
String capturedMessage= param.getString("greeting"); 
Integer captured_I = param.getInteger("NumberInteger"); 
相關問題