마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

getextras is null // getextras로 엑티비티 전환하면 값이 전달이 안되요

0 추천

 

제 프로젝트에 Rankg , Game, SelectMenu 스크립트 총 3개가 있는데

 

SelectMenu에서  Game로 는 intent 값이  정상적으로 넘어가는데

SelectMenu에서 Ranking으로 값을 넘겨주려고하면 넘어가질 않습니다... (game에서 넘겨주려고해도 마찬가지입니다.)

분명 game에서 받을때랑 같은 코드를 썻는데 왠지를 며칠째 못찾고있어서 질문을 드립니다 ㅠㅠ

 

/////////////////////////////////////////

SelectMenu.java

 

public class SelectMenu extends Activity implements OnClickListener {
 
    AlertDialog.Builder selectNanido;
    char msgchar;
    int mode = 0;
        
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.selectmenu);
 
        selectNanido = new AlertDialog.Builder(this);
         
         
        Button btn1 = (Button)findViewById(R.id.btn1);
        Button btn2 = (Button)findViewById(R.id.btn2);
        Button btn3 = (Button)findViewById(R.id.btn3);
         
        btn1.setOnClickListener(this);
        btn2.setOnClickListener(this);
        btn3.setOnClickListener(this);
         
        //btn2.setEnabled(false);
        //btn3.setEnabled(false);
    }
  @Override
  public void onClick(View v) {
      TextView msg = (TextView)findViewById(R.id.Msg1);
      Intent intent = new Intent();
      intent = null;
 
       
  switch (v.getId()) {
      case R.id.btn1:
          intent = new Intent(this,Game.class);
          intent.putExtra("putExr", 3);
          startActivity(intent);
          break;
      case R.id.btn2:
          intent = new Intent(this,Game.class);
          intent.putExtra("putExr", 4);
          msg.setText("Normal Mode");
          startActivity(intent);
          break;
      case R.id.btn3:
          intent = new Intent(this,Ranking.class);
          intent.putExtra("putExr", 5);
          msg.setText("Hard Mode");
          startActivity(intent);
          break;
      default:
           
          break;
      } //switch
//onclick

▲요게 selectMenu에서 Intent넘겨주는 코드입니다. 두 코드가 동일한데...

//////////////////////////////////

Ranking.java

public class Ranking extends Activity  implements OnClickListener { 
 
    public String namE;
    int nuM;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ranking);
 
        Intent getIntentB = new Intent();
        TextView textview = (TextView)findViewById(R.id.rank_text2);
        nuM = getIntentB.getExtras().getInt("putExr");
        textview.setText(""+nuM);
         
    }
    

저기 확대한 부분에서 오류가 뜸니다.

//////////////////////////////////

Game.java

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gameview);
     
    Resources res = getResources();
    Intent getIntentB = getIntent();
    Nanido = getIntentB.getExtras().getInt("putExr");
    

game 스크립트에선 오류가 안뜹니다... 이상하네요

//////////////////////////////////

이더 (120 포인트) 님이 2014년 8월 31일 질문

1개의 답변

0 추천
두 코드가 동일한게 아니라 랭킹에서는 인텐트를 받아오는 부분이 없네요

게임에서는 getIntent() 를 하는데 말이죠 'ㅅ'

 

설명을 조금 하자면 아래와 같이 현재클래스에서 > 랭킹클래스로 인텐트를 생성하고

Intent intent = new Intent(this, 랭킹클래스)

그 인텐트에 값을 넣은후

intent.putExtra("putExr", 5)

인텐트를 실행하여 랭킹클래스로 이동하지요

startActivity(intent)

 

그럼 호출된 랭킹클래스에서 글쓴님이 게임클래스에서 작성하신것처럼

Intent getIntentB = getIntent(); 로 받아야해요
초보개발자ㅠ (33,870 포인트) 님이 2014년 9월 1일 답변
초보개발자ㅠ님이 2014년 9월 1일 수정
아.......
아......진짜몰랐네요 ㅠㅠ

감사합니다!!
정말 감사합니다 ㅠㅠ!
진짜몰랐네여...
감사해요!!
...