2012-01-01 7 views
0

이것은 내가하고 싶은 것입니다. 사용자가 게임을 시작하면 그는 선택할 수있는 몇 가지 범주가있는 대시 보드 화면으로 이동합니다. 카테고리 중 하나를 클릭하면 ActivityB에서 선택한 카테고리 버튼을 찾는 방법을 알아야하는 단일 활동으로 연결됩니다.setActivityForresult에서 데이터를 가져 오는 방법

public void onGeneralKnowledgeClick(View v) { 
    createIntent("GENERAL_KNOWLEDGE", 1); 

} 
    ........ 
    ........ 
    ........ 
public void onCelebritiesClick(View v) { 
    createIntent("CELEBRITIES", 6); 
} 

private void createIntent(String category, int result) { 
    Bundle bundle = new Bundle(); 
    bundle.putInt(category, result); 
    Intent intent = new Intent(this.getApplicationContext(), 
      QuestionActivity.class); 
    intent.putExtras(bundle); 
    startActivityForResult(intent, 0); 
} 

이제 내 QuestionActivity 클래스에서, 나는이 시작된 의도와 관련된 categoryNumber을 얻기 위해 시도하는 방법이 있습니다 는 그래서, DashboardActivity에, 나는이 코드가 있습니다. 그래서, 나는 이런 식으로 뭔가를 :

private int getCategory() { 
    Bundle bundle = this.getIntent().getExtras(); 
     int categ = bundle.getInt("GENERAL_KNOWLEDGE"); 
    return categ; 

} 

내 문제가이다, 나는 그런 내가 여기처럼 hardcording하지 정수 범주를 반환 할 방법에 대해 설명합니다. 이 메소드가 각각의 번들에서 정수를 반환하기를 원한다. 내 생각은 getCategory 내부 switch 문을 가지고 있지만 사용할 대문자 값을 모르겠습니다. 또한, 나는 누군가가 onActivityResult를 사용할 수 있다고 말한 것을 보았지만 나는 어떻게 보이지 않습니다.

도와주세요!

답변

0

나는 당신이 조금 혼란스러워한다고 생각합니다. 당신은 단순히 수행해야합니다

bundle.putInt("CATEGORY", result); //where result == the categoryId and "CATEGORY" is always "CATEGORY" 

그런 다음 getCategory()에 :

int categ = bundle.getInt("CATEGORY") //you'll get the int value that you fed before 

내가 오해하지 않는 한.

+0

덕분에 도움을 주신 데 저에게 도움이되었습니다. 당신도 옳았어요, 조금 혼란 스러웠습니다. 나는 이제 기분이 나아졌습니다. D – Hussein

관련 문제