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

Activity 넘어가면서 생기는 문제점 좀 알려 주세요.

0 추천
아래와 같이 LogCat error가 나타남니다.
05-27 04:18:44.064: E/AndroidRuntime(1650): FATAL EXCEPTION: main
05-27 04:18:44.064: E/AndroidRuntime(1650): java.lang.ClassCastException: android.widget.Spinner cannot be cast to android.widget.RadioGroup
05-27 04:18:44.064: E/AndroidRuntime(1650): at com.mecasys.StartMain.onClick(StartMain.java:55)
05-27 04:18:44.064: E/AndroidRuntime(1650): at android.view.View.performClick(View.java:3511)
05-27 04:18:44.064: E/AndroidRuntime(1650): at android.view.View$PerformClick.run(View.java:14105)
05-27 04:18:44.064: E/AndroidRuntime(1650): at android.os.Handler.handleCallback(Handler.java:605)
05-27 04:18:44.064: E/AndroidRuntime(1650): at android.os.Handler.dispatchMessage(Handler.java:92)
05-27 04:18:44.064: E/AndroidRuntime(1650): at android.os.Looper.loop(Looper.java:137)
05-27 04:18:44.064: E/AndroidRuntime(1650): at android.app.ActivityThread.main(ActivityThread.java:4424)
05-27 04:18:44.064: E/AndroidRuntime(1650): at java.lang.reflect.Method.invokeNative(Native Method)
05-27 04:18:44.064: E/AndroidRuntime(1650): at java.lang.reflect.Method.invoke(Method.java:511)
05-27 04:18:44.064: E/AndroidRuntime(1650): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-27 04:18:44.064: E/AndroidRuntime(1650): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-27 04:18:44.064: E/AndroidRuntime(1650): at dalvik.system.NativeStart.main(Native Method)
 
제일 먼져 화면에 나타나는 Activity 입니다.
button을 누르면 Activity 오류로 종료 되버림니다.
다음 Activity로 넘어가게 도와 주세요...
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Spinner;

public class StartMain extends Activity implements OnClickListener {
	Spinner spinner;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.start_main);

		Button str = (Button) findViewById(R.id.start);
		str.setOnClickListener(this);
		Button who = (Button) findViewById(R.id.who);
		who.setOnClickListener(this);

		ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
				this, R.array.array_sex, android.R.layout.simple_spinner_item);
		
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		
		spinner = (Spinner)findViewById(R.id.spin);
		
		spinner.setAdapter(adapter);
		
		EditText user = (EditText)findViewById(R.id.user);
		
		
		
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		EditText et_user = (EditText) findViewById(R.id.user);
		String str_user = et_user.getText().toString();
		
		Intent it = new Intent(this, MainActivity.class);
		
		RadioGroup rg_spin = (RadioGroup)findViewById(R.id.spin);
		String str_spin = spinner.getSelectedItem().toString();
		Log.d("log", "msg"+str_spin);
		
		switch (v.getId()) {
		case R.id.start:
			it.putExtra("it_playea", str_user);
			Log.d("start", "put_E" + str_user);
			it.putExtra("it_spinner", str_spin);
			Log.d("spinner", "put_E" + str_spin);
			
			startActivity(it);
			
			finish();
			
			break;
		case R.id.who:

			startActivity(it);
			
			finish();
			
			break;
		}

	}
		
	}

 

두번째 Activity

 

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Spinner;

public class StartMain extends Activity implements OnClickListener {
	Spinner spinner;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.start_main);

		Button str = (Button) findViewById(R.id.start);
		str.setOnClickListener(this);
		Button who = (Button) findViewById(R.id.who);
		who.setOnClickListener(this);

		ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
				this, R.array.array_sex, android.R.layout.simple_spinner_item);
		
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		
		spinner = (Spinner)findViewById(R.id.spin);
		
		spinner.setAdapter(adapter);
		
		EditText user = (EditText)findViewById(R.id.user);
		
		
		
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		EditText et_user = (EditText) findViewById(R.id.user);
		String str_user = et_user.getText().toString();
		
		Intent it = new Intent(this, MainActivity.class);
		
		RadioGroup rg_spin = (RadioGroup)findViewById(R.id.spin);
		String str_spin = spinner.getSelectedItem().toString();
		Log.d("log", "msg"+str_spin);
		
		switch (v.getId()) {
		case R.id.start:
			it.putExtra("it_playea", str_user);
			Log.d("start", "put_E" + str_user);
			it.putExtra("it_spinner", str_spin);
			Log.d("spinner", "put_E" + str_spin);
			
			startActivity(it);
			
			finish();
			
			break;
		case R.id.who:

			startActivity(it);
			
			finish();
			
			break;
		}

	}
		
	}
밤밤바 (1,450 포인트) 님이 2013년 5월 27일 질문

2개의 답변

0 추천

05-27 04:18:44.064: E/AndroidRuntime(1650): java.lang.ClassCastException: android.widget.Spinner cannot be cast to android.widget.RadioGroup

위의 에러 메세지는 android.widget.Spinner android.widget.RadioGroup 로 캐스팅 할 수 없다는 메세지입니다.

첫번째 Activity 의

RadioGroup rg_spin = (RadioGroup)findViewById(R.id.spin);

에서 캐스팅을 잘못 하셨네요..
 

익명사용자 님이 2013년 5월 27일 답변
0 추천

 RadioGroup rg_spin = (RadioGroup)findViewById(R.id.spin);

요기서 클래스 캐스트 오류네요

블랙넥원 (9,600 포인트) 님이 2013년 5월 27일 답변
답변해주셔서 감사함니다.
...