2011-08-03 6 views
0

안녕 얘들 아 아직도 멍청 하긴하지만 오늘은 메인 메뉴 XML 레이아웃을 마쳤습니다. 3 개의 이미지 버튼을 가지고 있었고 푸시 할 때 다른 XML 레이아웃으로 이동하려고했습니다. 그래서 YouTube에서 비디오를 보았습니다. 이제는 내 앱이 강제 종료를 유지합니다. 이클립스에서 오류가 나타나지 않아 잘못된 액티비티 이름이나 뭔가라고 생각됩니다.앱이 강제 종료를 유지 하시겠습니까?

DragonFruitActivity.java

package com.Dragon_Fruit; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.Window; 
import android.view.WindowManager; 
import android.widget.Button; 

public class DragonFruitActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Button playbutton = (Button) findViewById(R.id.playbutton); 
     playbutton.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     startActivity(new Intent("com.Dragon_Fruit.playbutton")); 
    } 
}); 

    } 

}

playbutton.java

package com.Dragon_Fruit; 

import android.app.Activity; 
import android.os.Bundle; 

public class playbutton extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
    setContentView(R.layout.playscreen); 
    } 

} 

main.xml에

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_horizontal" 
    android:background="@drawable/mainbackground" 
    android:weightSum="1" 
    android:baselineAligned="false" android:orientation="vertical"> 

    <ImageButton 
    android:layout_width="wrap_content" 
    android:background="@drawable/playbutton" 
    android:layout_height="wrap_content" 
    android:src="@drawable/playbutton" 
    android:layout_gravity="center_horizontal" 
    android:id="@+id/playbutton"> 
    </ImageButton> 


    <ImageButton 
    android:layout_width="wrap_content" 
    android:id="@+id/imageButton1" 
    android:background="@drawable/playbutton" 
    android:layout_height="wrap_content" 
    android:src="@drawable/settingsbutton" 
    android:layout_gravity="center_horizontal"> 
    </ImageButton> 

    <ImageButton 
    android:layout_width="wrap_content" 
    android:id="@+id/imageButton1" 
    android:background="@drawable/playbutton" 
    android:layout_height="wrap_content" 
    android:src="@drawable/creditsbutton" android:layout_gravity="center_horizontal"> 
    </ImageButton> 
</LinearLayout> 

의 AndroidManifest.xml

여기
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.Dragon_Fruit" 
     android:versionCode="1" 
     android:versionName="1.0" 
     android:installLocation="preferExternal"> 


    <application android:icon="@drawable/icon" 
       android:label="@string/app_name" 
       android:debuggable="true"> 

     <activity android:name=".DragonFruitActivity" 
        android:label="@string/app_name" 
        android:screenOrientation="landscape" 
        android:configChanges="keyboard|keyboardHidden|orientation"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

<activity android:name=".playbutton" 
        android:label="@string/app_name" 
        > 
      <intent-filter> 
       <action android:name="com.Dragon_Fruit.PLAYBUTTON" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

    </application> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.WAKE_LOCK"/> 
    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="9"/> 
    </manifest> 

는 로그 캣의 말씀입니다 :

08-03 16:24:26.974: ERROR/AndroidRuntime(3910): FATAL EXCEPTION: main 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Dragon_Fruit/com.Dragon_Fruit.DragonFruitActivity}: java.lang.ClassCastException: android.widget.ImageButton 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2737) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2753) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at android.app.ActivityThread.access$2500(ActivityThread.java:129) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2107) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at android.os.Looper.loop(Looper.java:143) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at android.app.ActivityThread.main(ActivityThread.java:4701) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at java.lang.reflect.Method.invoke(Method.java:521) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at dalvik.system.NativeStart.main(Native Method) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910): Caused by: java.lang.ClassCastException: android.widget.ImageButton 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at com.Dragon_Fruit.DragonFruitActivity.onCreate(DragonFruitActivity.java:21) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
08-03 16:24:26.974: ERROR/AndroidRuntime(3910):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2701) 
+0

당신이 당신의 스택을 게시 할 수 추적 해주세요. –

+0

LogCat을 원하십니까? –

+1

코드를 올바르게 들여 쓰기하십시오. 읽는 것이 매우 어렵습니다. –

답변

4

당신 아마 ClassCastException 있습니다. 귀하의 ImageButtonButton하지만 ImageView를 확장하지 않습니다하지만 당신은 Button에 캐스팅하려고 :

<ImageButton 
android:layout_width="wrap_content" 
android:background="@drawable/playbutton" 
android:layout_height="wrap_content" 
android:src="@drawable/playbutton" 
android:layout_gravity="center_horizontal" 
android:id="@+id/playbutton"> 
</ImageButton> 

그리고

Button playbutton = (Button) findViewById(R.id.playbutton); 
당신은 그것을 변경해야

:

ImageButton playbutton = (ImageButton) findViewById(R.id.playbutton); 
playbutton.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     startActivity(new Intent("com.Dragon_Fruit.playbutton")); 
    } 
} 
+0

이제 주 화면으로 바로 갈 수 있지만 재생 버튼을 누르면 강제 종료됩니다 –

+0

의도를 올바르게 초기화하지 않습니다 :'new Intent (DragonFruitActivity.this, playbutton.class);'일반적으로 클래스 이름 대문자로 시작하십시오. – MByD

+0

와우 최고! 그 일은 너무나 감사했습니다. 하지만 나중에 경험이있는 것은 아니지만 며칠 만이 작업을 해왔습니다. –

관련 문제