2011-11-25 3 views
1

정수 (id)를 listview (클릭했을 때)에서 TheEndActivity.java로 전달하려고합니다. 하지만 내 코드는 정수를 올바르게 검색 할 수 없다.listview에서 다른 액티비티로 정수를 전달합니다.

UsernameList.java는

public void onListItemClick(ListView parent, View view, int position, long id) {   
    Intent i = new Intent(this, TheEndActivity.class); 
    i.putExtra("int", (int)id); 
    Log.e(LOG_TAG, "id value "+id); 
    startActivity(i); 

    Intent intent = new Intent(UsernameList.this, QuizAppActivity.class); 
    startActivity(intent); 
} 

TheEndActivity.java (내가 여기에 정수를 전달해야 그 클래스. 그것은에서 onCreate 메소드 내에서 생성된다)

(이 정수가 나오는 클래스)
Intent i = getIntent(); 
    final int number = i.getIntExtra("int", -1); 

와 나는 (작업이 TheEndActivity.java에서 이루어집니다)

finishBtn.setOnClickListener(new View.OnClickListener() {   
    @Override 
    public void onClick(View v) { 

     helper.insertMark(currentGame.getRight(), number); 
     Log.e(LOG_TAG, "id value: " + number); 
     Intent i = new Intent(TheEndActivity.this, MainMenu.class); 
     startActivity(i); 
    } 
}); 
데이터베이스에 저장 정수 (ID)를 사용합니다 16,

이 문제는 내가이 개 활동이라고

해결. 고마워요

+1

왜 'startActivity()'를 두 번 호출합니까? – Dalmas

+0

'id' 또는'position'을 원하십니까? – Pawan

+0

'int' 대신'long'을 전달하지 않으시겠습니까? –

답변

4

문제는 2 startActivities를 호출하는 것 같습니다. TheEndActivity 및 QuizAppActivity 두 작업 있습니까?

  1. 데이터베이스에 작업 저장과 같은 백그라운드 작업을 수행하는 경우 TheEndActivity를 IntentService 또는 AsyncTask로 변경해야합니다.
  2. 그렇지 않은 경우 TheEndActivity 만 실행하고 사용자가 거기에서 QuizAppActivity로 이동할 수 있습니다.

  3. 변경해보십시오.
    의도 i = 새로운 의도 (this, TheEndActivity.class); ~ 의도 i = 새로운 의도 (UsernameList.this, TheEndActivity.class);

+0

thx로 정의했습니다. 포인트 3 : 차이점은 무엇입니까? – kumisku

+0

전달 된 정수를 저장하려면 IntentService로 변경해야합니까? 방금 옵션 2로 만들 수 있습니까? – kumisku

+1

@chandra 고마워요. 마침내 방금 1 활동을 호출하고 tht 활동에서 가치에 액세스합니다. – kumisku

0

당신은 추가로 INT이없는 intent으로 startActivity을 요구하고있다.

+2

인 텐트에는 여분이 있습니다. – bschandramohan

+1

@ChandraMohan : 실행 된 것은 두 번째이며, 여분은 없습니다. – Macarse

관련 문제