2013-06-19 2 views
1

코드 코드에서 새 값을 동일한 Activity (OneActivity)로 전달하지만 버튼을 클릭하면 새 Activity (화면 새로 고침)가 열리는 것 같습니다. 아래의 코드를 수정하여 버튼을 클릭 할 때 활동을 유지하고 새로 고치지 않으려면 어떻게해야합니까?On Button 클릭, 동일 활동의 값 유지 또는 변경

final Button fruit_q = (Button) findViewById(R.id.fruit_q); 
fruit_q.setOnClickListener(new OnClickListener() //Next step 
     { 
      public void onClick(View v) 
      { 
       Intent i = new Intent(getApplicationContext(), OneActivity.class); 

       if(position != 35) //35 is end of index in gridview array 
       { 
        // passing array index 
        String name = getResources().getResourceEntryName(imageAdapter.mThumbIds[position+1]); 
        i.putExtra("image_name", name); 
        i.putExtra("id", position+1); 
        i.putExtra("rememberID_frist", firstTimeID_1); 
        i.putExtra("rememberID_second", position+1); 
        whatfruit.stop(); 
        correctAnswer.stop(); 
       } 
       else // ber sin chea answer dol index 35 hery jang back to index 0 
       { 
        // passing array index 
        //String name = getResources().getResourceEntryName(imageAdapter.mThumbIds[position+1]); 
        i.putExtra("image_name", "apple"); 
        i.putExtra("id", 0); 
        i.putExtra("rememberID_frist", firstTimeID_1); 
        i.putExtra("rememberID_second", 0); 
        whatfruit.stop(); 
       } 
       startActivity(i); 
      } 
     }); 

고마워요!

당신이 전달하는 네 개의 값을 만듭니다

+0

의도를 작성하고 startActivity (i)를 호출하면 활동이 새로 고쳐진다는 것은 분명히 공유 환경 설정 – Raghunandan

+0

이 필요합니다. onClick()에서 변경할 전역 변수가 필요할 수 있습니다. –

+0

친애하는 Valentino 님, 이미 2 시간 동안 시도했지만 여전히 솔로 션을 찾을 수 없으므로 코드에 수정 해 주실 수 있습니까? – user1731690

답변

0

이 버튼을 클릭하고 위치 당신이 IntentExtras으로 네 개의 값을 전달하기 때문에, 다음과 같이 해보십시오 (35)하지 않을 때 당신은 단지 위치의 값을 증가 할 것 같다 엑스트라로서 귀하의 활동에서 글로벌 변수로. onCreate()에서 전달 된 값을이 변수에 지정할 수 있습니다 (예 : 위치). 그런 다음 모든 당신이 onClickListener에에 할 수있는 것은

fruit_q.setOnClickListener(new OnClickListener() //Next step 
     { 
      public void onClick(View v) 
      { 
       if(position != 35) //35 is end of index in gridview array 
       { 
        id = position + 1; 
        secondID = position + 1; 
       } 
       else // ber sin chea answer dol index 35 hery jang back to index 0 
       { 
        id = 0; 
        secondID = 0; 
       } 
       // call method to show this new values (1) 
      } 
     }); 

에 언급 된 방법 (1) 당신이 설정되도록 설계 할 수있는 모든 시각과 배경이에서 모두 호출 할 수 있도록 귀하의 활동의 일을 계산 onCreate()onClickListener. 내가 직접 코드를 선택하지 않는

public class MyActivity extends Activity{ 
    // ...  

    private int a, b, c; 

    protected void onCreate(Bundle b){ 
     // do usual stuff 
     a = getIntent().getIntExtra("a"); 
     b = getIntent().getIntExtra("b"); 
     c = getIntent().getIntExtra("c"); 
     // ... 
     fruit_q.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v){ 
       a += 1; 
       b += 2; 
       c -= 3; 
       displayStuff(); 
      } 
     } 
     displayStuff(); 
    } 

    private void displayStuff(){ 
     // get displaying components like TextView 
     // set some of the values like a, b or c as Text 
    } 

    // ... 
} 

예, 그것은 당신에게 내 말은 원칙을 보여 만한다. 이와 같이 활동을 새로 고치지 않고도 Activity에서 직접 기존 값을 조작 할 수 있습니다.