2012-04-16 3 views
0

내 게임에서 인 텐트 추가 기능을 사용하여 점수를 PlayGame 활동에서 스코어 보드 활동으로 전달하려고합니다. 경기를 마무리에 , 나는 이런 식으로 점수 판으로 이동 :의도 엑스트라로 액티비티간에 데이터를 전달할 때 동일한 값을 계속 유지합니다.

Intent intentScoreboard = new Intent(getApplicationContext(), Scoreboard.class); 
intentScoreboard.putExtra("com.example.game.SCORE", score_counter); 
startActivity(intentScoreboard); 

후 스코어 보드 클래스에 나는이 같은 onResume() 메소드에서 검색이 잘 작동

Bundle b = getIntent().getExtras(); 
int score = b.getInt("com.example.game.SCORE"); 

처음에는 다른 게임을하고 스코어 보드로 돌아 가면 첫 번째 게임에서 여전히 점수를 얻습니다.

무엇이 누락 되었습니까?

+0

자세한 코드를 참조하십시오. –

+0

[Shared Preferences] (http://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC0QFjAA&url=http%3A%2F%2Fdeveloper.android)를 사용해야한다고 생각합니다. .COM % 2Freference % 2Fandroid % 2Fcontent % 2FSharedPreferences.html 및 EI = xB6MT8a2M47OrQel6bzDCw & USG = AFQjCNFyaMlF7pqBKbWPbXr7H1Wg4gKaoA & SIG2 = Ei4x9uRJNIar5_HYvdmL1A)이 목적을 – Rajkiran

+0

에 나는 공유 환경 설정을 사용하여 시도,하지만 당신은 이미 도착 후 존재하는 액티비티를 호출하면 이상하게 충분히 나는 그 – muggezifter

답변

0

당신이 setIntent()를 호출 누락

+0

를 같은 문제가 첨부 된 플래그에 따라 활동 스택을 지우거나 지 웁니다. 이제는 잘 작동하지만 getIntent를 호출하면 항상 원래 의도가 반환됩니다. 당신이해야 할 일은 onNewInetent setIntent (newIntent)를 호출 한 다음 코드가 잘 작동 할 것입니다. 이것은 여러분의 문제에 대한 제 추측입니다. – Javanator

+0

고마워, 그게 다야. 나는 또한 intentScoreboard.setFlags (Intent.FLAG_ACTIVITY_SINGLE_TOP)를 추가해야만했다. – muggezifter

0

이 시도 : 당신이 그것을 작동해야 새로운 게임 다음

을 시작 돌아갈 경우) (점수의 활동이 마무리하자

0

getIntent는 액티비티를 시작한 인 텐트를 전달합니다. 활동이 재개되면 가장 최근에받은 의도가 없습니다. 솔루션을 보려면 여기를 참조하십시오. https://stackoverflow.com/a/6838082/1127492

+0

오히려 같은 대답을 다시 게시했는데 나는 이미 게시 된 것에 댓글을 달 것을 선호했다. 이 커뮤니티는 이와 같이 작동합니다. – Javanator

+0

물론, 사람들이 비동기로 작업 할 때 이것은 잠금없이 발생합니다. – Stefan

+0

그게 참으로 문제였다. Javanator의 대답은 위의 – muggezifter

0

BundlegetExtra() 값을 많이 필요하지 않습니다. 내 코드에서, 난, 이런 식으로 수신하는 데 사용했다

int score = getIntent().getIntExtra("com.example.game.SCORE",defaultValue);

그것은해야 당신의 문제에 대한 작품. 또한 이미받은 값을 제공하지 않습니다.

너에게 좋을 것 같아.

+0

을 참조하십시오. 아니요, 시도했지만 그 작업을하기 위해 setIntent()를 호출해야합니다. 그래도 짧은 코드를 좋아한다. :) – muggezifter

+0

@muggezifter 실제로 puExtra는 String으로, getExtra는 String으로 잘 동작한다. String 값으로 한번 시도하십시오. 어쩌면 당신은 거기에 정수를위한 해결책을 알게되었습니다. 젠체하는 생각 대신 시도 해보세요. 점수를 표시하기를 원하면 (이 getExtra 값을 반환하지 않고 모든 Integer 연산을 추가 또는 다중하지 않으려면) String 값으로 전달하는 것이 좋습니다. –

관련 문제