2013-12-13 3 views
0

다른 활동으로의 데이터 전송에 문제가 있습니다. 내 코드가 있습니다. LoggedMain 활동한 활동에서 다른 활동으로 데이터를 보내는 안드로이드

... 
Intent i = new Intent(MainActivity.this, LoggedMain.class); 
Intent toOther = new Intent(MainActivity.this, PickerFormActivity.class); 
toOther.putExtra(LOGIN_NAME, userName); 
toOther.putExtra(PASSWORD, password);     
i.putExtra(LOGIN_NAME, userName); 
startActivity(i); 

내가 그 문제를 도와 줄 수

final String username = getIntent().getExtras().getString(MainActivity.LOGIN_NAME); 
final String password = getIntent().getExtras().getString(MainActivity.PASSWORD); 

누군가 널 포인터 예외가 점점 PickerFormActivity 활동 메신저에서 사용할 때 내가

Intent i = getIntent(); 
String userName = i.getExtras().getString(MainActivity.LOGIN_NAME); 

를 사용하여 값을 얻을 수 있지만? 대신 당신은 의도 toOther로 활동 PickerFormActivity을 시작해야 String mString = getIntent().getExtras().getString(string);

사용 String mString = (String) getIntent().getSerializableExtra(string);

+2

사용'만약 startActivity (toOther) 내가 모두 활동 –

+0

'당신이 toOther'intent'에 값을 추가하는 대신되기 때문에 활동을 시작하기위한'i' 하지만 한 번에 하나의 활동 만 시작할 수 있습니다. 따라서 스위치 케이스를 사용하거나 조건에 따라 활동을 시작하려면 if-else 래더를 사용하십시오. – user3099680

+0

해당하는 값을 필요 –

답변

0

. 데이터는 의도와 함께 이동합니다. 따라서 다른 의도로 활동을 시작하면 데이터가 손실됩니다. toOther 의도에 대한

Intent i = new Intent(MainActivity.this, LoggedMain.class); 
i.putExtra(LOGIN_NAME, userName); 
i.putExtra(PASSWORD, password);     
i.putExtra(LOGIN_NAME, userName); 
startActivity(i); 

다음

Intent i = getIntent(); 
String userName = i.getExtras().getString(MainActivity.LOGIN_NAME); 
String password = i.getExtras().getString(MainActivity.LOGIN_NAME); 
Intent other = new Intent(LoggedMain.this, PickerFormActivity.class); 
other.putExtra(LOGIN_NAME, userName); 
other.putExtra(PASSWORD, password); 
startActivity(other); 
0

선언하는 엑스트라하지만 당신은 그 의도를 호출되지 않은 : 당신이 LoggedMain에서 PickerFormActivity를 시작하면

예를 들어, 당신은 할 수 있습니다. Intent toOther를 LoggedMain.class 다음에 호출하는 경우 Intent에 필요한 모든 엑스트라를 LoggedMain에 전달하고 다음 인 텐트로 다시 전달해야합니다. 첫 번째 활동에서 두 번째 활동으로 전달할 대상 만 선언 할 수 있습니다. 이 경우에 할 수 가장 좋은 것은 된 SharedPreferences를 사용하는 것입니다

+0

감사합니다. 귀하의 투표를 평가할 수는 없지만 도움이되었습니다. – user3099680

관련 문제