2012-02-24 3 views
0

onKeyListener에 익명의 내부 클래스를 캐스팅 한 logcat 오류가 발생합니다. 지금까지 내가 (나는 아직도 모든 밧줄을 배우고) 알고 여기 저기 참조 있어요 라인 아무 문제는 세션의 전체 오류 로그 것 없다 :Android : Logcat 오류 oncastListener가 캐스팅 된 경우

02-23 16:28:45.806: E/AndroidRuntime(482): FATAL EXCEPTION: main 
02-23 16:28:45.806: E/AndroidRuntime(482): java.lang.RuntimeException: Unable to start activity ComponentInfo{omaxwell.CS211D.PennyConverter/omaxwell.CS211D.PennyConverter.PennyConverterActivity}: java.lang.NullPointerException 
02-23 16:28:45.806: E/AndroidRuntime(482): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1748) 
02-23 16:28:45.806: E/AndroidRuntime(482): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764) 
02-23 16:28:45.806: E/AndroidRuntime(482): at android.app.ActivityThread.access$1500(ActivityThread.java:122) 
02-23 16:28:45.806: E/AndroidRuntime(482): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002) 
02-23 16:28:45.806: E/AndroidRuntime(482): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-23 16:28:45.806: E/AndroidRuntime(482): at android.os.Looper.loop(Looper.java:132) 
02-23 16:28:45.806: E/AndroidRuntime(482): at android.app.ActivityThread.main(ActivityThread.java:4025) 
02-23 16:28:45.806: E/AndroidRuntime(482): at java.lang.reflect.Method.invokeNative(Native Method) 
02-23 16:28:45.806: E/AndroidRuntime(482): at java.lang.reflect.Method.invoke(Method.java:491) 
02-23 16:28:45.806: E/AndroidRuntime(482): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
02-23 16:28:45.806: E/AndroidRuntime(482): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
02-23 16:28:45.806: E/AndroidRuntime(482): at dalvik.system.NativeStart.main(Native Method) 
02-23 16:28:45.806: E/AndroidRuntime(482): Caused by: java.lang.NullPointerException 
02-23 16:28:45.806: E/AndroidRuntime(482): at omaxwell.CS211D.PennyConverter.PennyConverterActivity.onCreate(PennyConverterActivity.java:31)//onKeyListener reference 
02-23 16:28:45.806: E/AndroidRuntime(482): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 
02-23 16:28:45.806: E/AndroidRuntime(482): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712) 

는 그리고 여기 내 활동 코드입니다 :

package omaxwell.CS211D.PennyConverter; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.TextView; 

public class PennyConverterActivity extends Activity 
{ 

    EditText et; 
    TextView tv; 

    int cents; 
    int remaining; 
    int quarters; 
    int dimes; 
    int nickels; 
    int pennies; 
    String result; 

    @Override 

    public void onCreate(Bundle b) 
    { 
     super.onCreate(b); 
     setContentView(R.layout.main); 

     et.setOnKeyListener(new View.OnKeyListener() //Line referenced in LogCat 
     { 
      @Override 
      public boolean onKey(View v, int KeyCode, KeyEvent event) 
      { 
       if((event.getAction() == KeyEvent.ACTION_DOWN) && (KeyCode == KeyEvent.KEYCODE_ENTER)) 
       { 
        result = et.getText().toString(); 
        return (true); 
       } 
       return (true); 
      } 
     }); 

     cents = Integer.parseInt(result); 

     quarters = cents/25; 
     tv.setText(R.string.quarters); 
     remaining = cents % 25; 

     dimes = remaining/10; 
     tv.setText(R.string.dimes); 
     remaining = remaining % 10; 

     nickels = remaining/5; 
     tv.setText(R.string.nickles); 

     pennies = remaining % 5; 
     tv.setText(R.string.pennies); 

    } 
} 

에뮬레이터에서 앱을 실행할 때 자동으로 실행되지 않으며 앱 서랍을 시작하면 시작될 때 충돌이 발생합니다.

+0

NullPointerException은 간단한 오류입니다. 코드를주의 깊게 확인하십시오. var가 초기화 할 수없는 곳이있을 수 있습니다. var 'et' inited? – idiottiger

답변

0

et 초기화하지 않았습니다. 내가 누락 된 것 같아

et = (EditText) findViewById(R.id.my_edit_text); 

그 라인 바로 위.

+0

Eclipse에서 실행을 클릭해도 초기화되지 않고 계속 실행됩니다. – user1036553

+0

새로운 오류 메시지가 있습니까? – EboMike