2012-07-06 5 views
0

내 앱에서 활동을 전환하는 데 버튼을 사용하려고 시도하지만 강제 종료를 유지합니다. Heres는 내 AndroidManifest.xml에 : 사람이 도움을 줄 수있는 경우활동 전환 할 때 강제 닫기

package com.idiedastyear; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 
import android.support.v4.app.NavUtils; 


public class tabView extends Activity { 

    Button calculator; 

    @Override 



    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_tab_view); 
     calculator = (Button)findViewById(R.id.calculatorButton); 

     calculator.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Intent calculatorIntent = new Intent(v.getContext(), calculator.class); 
       startActivityForResult(calculatorIntent, 0); 
      } 
     }); 
    } 




} 

하는 것이 좋을 것 : 여기

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.idiedastyear" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="9" 
    android:targetSdkVersion="15" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".tabView" 
     android:label="@string/title_activity_tab_view" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name=".calculator" 
     android:label="Calculator" > 
    </activity> 
</application> 

그리고 버튼이있는 활동입니다! 감사!

EDIT [로그 캣]

07-06 17 : 38 : 06.683 : D/memalloc (25,668) 이온 : 매핑 버퍼 베이스 : 0x5ce6c000 크기 : 3,768,320 오프셋 : 0 FD 53 07 06 : 17 : 38 : 08.885 : D/memalloc (25668) : 매핑 버퍼베이스 : 0x5d304000 크기 : 3768320 오프셋 : 0 fd : 60 07-06 17 : 38 : 08.985 : D/CLIPBOARD (25668) : 클립 보드 숨기기 시작 입력시 대화 : 다른 사람이 완료했습니다 ...! 07-06 17:38:11.738 : D/memalloc (25668) : 매핑 버퍼베이스 : 0x5d69c000 크기 : 3768320 오프셋 : 0 fd : 63 07-06 17 : 38 : 12.168 : D/AndroidRuntime (25668) : VM 종료 07-06 17 : 38 : 12.168 : W/dalvikvm (25668) : threadid = 1 : 캐치되지 않는 예외로 종료하는 스레드 (그룹 = 0x40c72a68) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668)) : 치명적인 예외 : main 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : java.lang.RuntimeException : 활동을 시작할 수 없습니다. ComponentInfo {com.idiedastyear/com.idiedastyear.calculator} : android .view.InflateException : 이진 XML 파일 줄 # 6 : 오류 부풀려 짐 Textview 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : at,515,android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1970) 07-06 17 : 38 : E/AndroidRuntime (25668) : android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1995)에서 07 12.178 -06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : android.app.ActivityThread.access $ 600 (ActivityThread.java:128) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1161) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : android.os.Handler.dispatchMessage (Handler.java:99) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : android.os.Looper.loop (Looper.java:137) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : android.app.ActivityThread.main (ActivityThread.java:4514) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : java.lang.reflect.Method .invokeNative (네이티브 메소드) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : 에서 java.lang.reflect.Method.invoke (Method.java:511) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25,668) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run에서 (ZygoteInit.java:980) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25,668)의 COM .android.internal.os.ZygoteInit.main (ZygoteInit.java:747) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : 에 dalvik.system.NativeStart.main (기본 메소드) 07-06 17 : 38 : 12.178 :오류가 발생하는 클래스 Textview 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : android. view.LayoutInflater.createViewFromTag (LayoutInflater.java:691) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : android.view.LayoutInflater.rInflate (LayoutInflater.java:739) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : android.view.LayoutInflater.inflate (LayoutInflater.java:489) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : android.view.LayoutInflater.inflate (LayoutInflater.java:396) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : android.view.LayoutInflater.inflate (LayoutInflater.java:352) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : 에서 com.android.internal.policy.impl.PhoneWindow.setContentView (PhoneWindow.java:274) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (2) 5668) : android.app.Activity.setContentView (Activity.java:1835) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : 에서 com.idiedastyear.calculator.onCreate (calculator.java : 20) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : android.app.Activity.performCreate (Activity.java:4470) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668)) : 에서 android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1053) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : 에서 android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1934)) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : ... 11 더보기 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : 원인 : java.lang.ClassNotFoundException : android.view.Textview 07 : 17 : 38 : 12.178 : E/AndroidRuntime (25668) : 에 dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:61) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : 에서 java.lang.ClassLoader.loadClass (ClassLoader.java:501) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : 에서 java.lang .ClassLoader.loadClass (ClassLoader.java:461) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : 에서 android.view.LayoutInflater.createView (LayoutInflater.java:552) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : android.view.LayoutInflater.onCreateView (LayoutInflater.java:636) 07-06 17 : 38 : 12.178 : E/And roidRuntime (25668) : com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView (PhoneLayoutInflater.java:66) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : android.view. LayoutInflater.onCreateView (LayoutInflater.java:653) 07-06 17 : 38 : 12.178 : E/AndroidRuntime (25668) : android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:678) 07-06 17:38 : 12.178 : E/AndroidRuntime (25668) : ... (21) 더

+0

'계산기'라는 클래스가 있습니까? 지금 당장 당신은 당신의'Button' 클래스에서'Activity'를 시작하려고합니다. 이것은 작동하지 않을 것입니다. 또한 강제 종료 할 때 LogCat 로그를 게시하십시오. – Eric

+0

일부 Logcat 출력을 게시하지 않는 이유는 무엇입니까? – AAnkit

+0

'Intent calculatorIntent = 새로운 인 텐트 (tabView.this, calculator.class); ' –

답변

0

귀하의 코드를 한 다음

Intent calculatorIntent = new Intent(v.getContext(), calculator.class);

두 번째 매개 변수는 활동 클래스 이름으로되어 있습니다. 또한 계산기 인스턴스 이름과 calculator.class를 섞어서 시작한 것 같습니다.

나는 다음과 같은 제안 :

  1. 가 CalculatorActivity라는 활동 클래스를 만듭니다.
  2. AndroidManifest에서 정의했는지 확인하십시오.XML
  3. 활동을 시작하려면 다음 줄을 사용

    Intent calculatorIntent = new Intent(getBaseContext(), CalculatorActivity.class);

은 또한 당신이 정확하게, 또한 로그 캣 출력을 제공하시기 바랍니다 도움이됩니다.

+0

이 경우는 @ Romin 일 수 없습니다. 당신은 buttonObject.class를 쓸 수 없다. 대신 컴파일러 오류 일 수있다. – AAnkit

+0

@Ankit 귀하의 요지를 이해하지 못합니다. 위의 단계에서 buttonObject.class를 어디서 사용했는지 지적 해 주시겠습니까? (1,2,3)? – Romin

+0

두 번째 매개 변수는 활동 클래스 이름으로되어 있습니다. 또한 당신이 시작하고있는 calculator.class와 함께 계산기 (기본적으로 Button Instalce 임) 인스턴스 이름이 섞여있는 것처럼 보입니다.이 이름이 섞여있는 것이 문제의 원인 일 수는 없습니다. 그것이 좋은 제안이지만 .. – AAnkit

0

당신은

startActivityForResult(calculatorIntent, 0); 

대신에 위의 사용의

startActivity(calculatorIntent); 

에 startActivityForResult 사용하지 말아야합니다 (calculatorIntent, 0); 은 시작하려는 활동의 결과를 갖는 데 사용됩니다. startActivity 작업을 전환하려는 경우 충분하지 않습니다. 더 나은 답변을 얻으려면 logcat을 게시해야하지만.

+0

실수를 지적하십시오 아래쪽 투표 – AAnkit

+0

여전히 강제 종료 : ( –

+0

logcat에서 계산기 클래스에 문제가 있다고 생각할 수 있습니다. 또한 계산기 oncreate 및 xml 파일을 게시하십시오. – AAnkit