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

로딩화면 제작하는데 있어 문제가 발생했습니다.

0 추천
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        startActivity(new Intent(this,LoadingActivity.class)); // 화면 로딩 인텐트

        btnNext = (ImageButton) findViewById(R.id.next);
        btnBefore = (ImageButton) findViewById(R.id.before);//버튼 2개 인스턴스 생성

        korea = (ImageView) findViewById(R.id.korea);




        btnNext.setOnClickListener(new View.OnClickListener() {        //next버튼 함수
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), SeasonActivity.class);
                startActivity(intent);

            }
        });

        btnBefore.setOnClickListener(new View.OnClickListener() {       //before버튼 함수
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), RankingActivity.class);
                startActivity(intent);

            }
        });
    }

 

위는 MainActivity.java의 내용이구요!!
버튼을 누르면 다음 화면으로 넘어가는 동작을 Intent를 사용해서 구현해 놓았습니다.

여기서 문제가 생겼는데 마지막 화면에서 다음버튼을 누르면 처음 화면으로 돌아가야 하는데 로딩화면이 뜨면서 넘어가버립니다. 로딩화면 없이 뜨게 할 수 는 없는건가요 ??? 인텐트를 사용하면 안되는건가요...?
그리고 중간중간 갑자기 어플이 죽어버리는 현상도 나타났는데요

에러코드가 

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.giriboy.design/com.example.giriboy.design.SeasonActivity}: android.view.InflateException: Binary XML file line #99: Error inflating class <unknown>
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2436)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2495)
            ...
           .....
이건데요
구글링을 해보니 오타가 있을 수 있다 이런 말밖에 없었습니다. 클래스명이나 xml이름에 오타는 없는데 자꾸 이런 에러가 발생하면서 어플이 죽어버립니다.
혹시 해결방법 아신다면 설명해주시면 감사하겠습니다!!!!
익명사용자 님이 2015년 5월 18일 질문

2개의 답변

0 추천
Handler handler = new Handler();
     handler.postDelayed(new Runnable() {
   @Override
   public void run() {
    finish();
   }
     }, 3000);

LoadingActivity 가 어떻게 되어있는지 모르겠는데.. 로딩액티비티를 띄웠는데 버튼이벤트는 메인액티비티 이벤트??

로딩액티비티에서 버튼이벤트 처리해야되지 않을까 싶네요

버튼이 로딩액티비티에 잇는거 아닌가요?

 

전 위 처럼 로딩화면을 3초만띄우고 종료시켜버립니다.

로딩액티비티에서 버튼이벤트를 정의하셔야할듯 해요

 

아시리 (8,400 포인트) 님이 2015년 5월 18일 답변
답변 감사드립니다. 로딩 엑티비티에 현재
public class LoadingActivity extends Activity {
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.loading);

        Handler handler = new Handler() {
            public void handleMessage(Message msg){
                finish();
            }
        };
        handler.sendEmptyMessageDelayed(0,3000);
    }
}

이렇게 선언이 되어있구요. 종료되도록 선언을 해 놨는데도 그러네요 ㅠㅠ
XML file line #99: Error inflating class <unknown>
xml 에러같은데요 99번째줄
0 추천
if(flag)
   startActivity(new Intent(this,LoadingActivity.class));

로딩화면이 뜨게되는 LoadingActivity를 flag를 하나줘서 첫 실행시에만 startActivity하고 그 이외에는 실행을 안하도록 하면 될 것같네요.

이런 저런 기능이 없는가?보다 기본 언어적으로 해결되는 것들이 많은 것 같습니다~

 

에러코드는

http://egloos.zum.com/shadowxx/v/10668878

한번 확인해보셔요~

어렵군요 (5,920 포인트) 님이 2015년 5월 19일 답변
어렵군요님이 2015년 5월 19일 수정
...