마스터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일 수정
아.......
아......진짜몰랐네요 ㅠㅠ

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