2015-05-12 2 views
-4

Можете ли вы рассказать мне, как работает putExtra()? Как и где он хранит данные, переданные ему? Я все еще запутался, как данные внутри него работают и как они передаются из одной активности в другую деятельность? Как организована его структура? Или значения, хранящиеся внутри класса Intent?Как работает putExtra()?

Представьте, что класс А. имеет один static string Example .Я хочу, чтобы заполнить эту строку в следующей операции, так что я называю activityforresult()

Теперь есть класс B.I заполнены текстовое поле с идентификатором text_entered. и я поместил код

Intent text = new Intent(); 
test.putExtra(A.Example, text_entered); 

Теперь, где будет сохранен текст, в примере или в намеренном тесте?

+1

Возможный дубликат [Как использовать putExtra() и getExtra() для строковых данных] (http://stackoverflow.com/questions/5265913/how-to-use-putextra-and-getextra-for-string- данные) –

+1

Вы должны увидеть исходный код для Android, а затем –

+0

Перед тем, как отправить вопрос в переполнение стека, сначала выполните его. – Madhu

ответ

1

Activity1.class

Intent intent = new Intent(getApplicationContext(), Activity2.class); 
    intent.putExtra("EXTRA_NAME", 4);//Int 
    intent.putExtra("EXTRA_NAME", "String_Values");//String 

Activity2.class

String stringValue = getIntent().getStringExtra("EXTRA_NAME");//String extra 
    int iValue = getIntent().getIntExtra("EXTRA_NAME", 0);//defaultValue = 0 
0

Ваш текст будет переноситься вместе с намерением другой деятельности, как описано @NamHoang в своем ответе. Элемент A.Example (должен быть строкой) в вашем случае - это просто ключ, который используется для указания значения, присутствующего в намерении. Надеюсь, вы знаете, что это пара ключевого значения, которая отправляется вместе с намерением.

0

класс A.class

static String Example = "this is a example string"; 

private void JumpToB(){ 
    Intent intent = new Intent(); 
    intent.putExtra("key_data", Example); 
    intent.setClass(this,B.class); 
    startActivity(intent); 
} 

B.class

protected void onCreate(Bundle savedInstanceState) { 
    String example = getIntent().getStringExtra("key_data"); 
    text_entered.setText(example); 
} 

Если вы хотите передать модель, хороший способ превратить модель в JSON.

Смежные вопросы