2012-04-14 6 views
2

나는 안드로이드 프로그래밍에별로 익숙하지 않으므로 용서하십시오.android UI 위젯 초기화 오류가 발생했습니다

나는 현재 코드베이스의 XML에 텍스트 상자를 추가하고 사용자가 텍스트 상자를 편집 할 때 코드의 변수를 변경해야하는 과제가 있습니다.

그래서 텍스트 상자를 추가하고 잘 보였습니다.하지만 초기화하려고 할 때 응용 프로그램이 예기치 않게 중지되었고 LogCat에서 많은 정보가 중단됩니다.

CLARIFICATION : 마지막 텍스트 상자 인 intersymboltime 만 오류를 발생시킵니다. 초기화를 주석 처리하면 모든 것이 정상적으로 실행됩니다.

내 XML의 샘플 (처음 두 비교를 위해, 기존의 코드에서 있습니다) 내에서 onCreate에서

<TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/hostText" 
     android:layout_marginTop="5dp" 
     android:text="@string/portlabel" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <EditText 
     android:id="@+id/portText" 
     android:layout_width="110dp" 
     android:layout_height="35dp" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/textView3" 
     android:hint="@string/portHint" 
     android:inputType="number|textNoSuggestions" /> 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/portText" 
     android:layout_marginTop="14dp" 
     android:text="@string/symboltime" /> 

    <EditText 
     android:id="@+id/intersymboltime" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/textView4" 
     android:ems="10" 
     android:hint="@string/symboltimehint" 
     android:inputType="number" /> 

(처음 두 호출 코드를 기존에있는, 비교를 위해) :

((TextView)findViewById(R.id.hostText)).setText(mServerHost); 
    ((TextView)findViewById(R.id.portText)).setText(new Integer(mServerPort).toString()); 
    ((TextView)findViewById(R.id.intersymboltime)).setText(mClient.portToIntersymbolTime(mServerPort, 1)); 

portToIntersymbolTime이 예상대로 반환됩니다.

무엇이 누락 되었습니까?!

편집 : 내 로그 캣 로그 :

04-13 18 : 10 : 17.556 : W/ResourceType에 (716) : 10 : 없음 패키지 식별자 자원 번호 0x00000100 04-13 (18) 값을 가져올 때 17.566 : d/dalvikvm (716) : threadid = 1 : catch되지 않은 예외 (그룹 = 0x40015560)로 스레드가 종료 됨 04-13 18 : 10 : 17.576 D/AndroidRuntime (716) : VM 종료 중 04-13 18 : 10 : 17.566 : : E/AndroidRuntime (716) : 치명적인 예외 : 주 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : java.lang.RuntimeException : 활동을 시작할 수 없습니다. ComponentInfo {edu.uw.cs.cse461.sp12 .timingframing/edu.uw.cs.cse461.sp12.timingframing.TimingFramingAndroidActivity} : android.content.res.Resources $ NotFoundException : 문자열 리소스 ID # 0x100 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1647) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1663) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : android.app.ActivityThread.access $ 1500 (ActivityThread.java : 117) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : android.app.ActivityThread $ H.handleMessage (ActivityThread.java:931) 04-13 18 : 10 : 17.576 : E/AndroidRuntime 716) : android.os.Handler.dispatchMessage (Handler.java:99) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : android.os.Looper.loop (Looper.java:123) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : android.app.ActivityThread.main (ActivityThread.java:36) 83) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : java.lang.reflect.Method.invokeNative (기본 메소드) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : .Comv.reflect.Method.invoke (Method.java:507) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit .java : 839) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : com.android.internal.os.ZygoteInit.main (ZygoteInit.java:597) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : dalvik.system.NativeStart.main (네이티브 메소드) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : 원인 : android.content.res.Resources $ NotFoundException : 문자열 리소스 ID # 0x100 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : android.content.res.Resources.getText (Resources.java:201) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : android.widget.TextView.setText (TextView.java : 2857) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : edu.uw.cs.cse461.sp12.timingframing.TimingFramingAndroidActivity.onCreate (TimingFramingAndroidActivity.java:39) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : android.app.ActivityThread. performLaunchActivity (ActivityThread.java:1611) 04-13 18 : 10 : 17.576 : E/AndroidRuntime (716) : ... 11 더

답변

0

logcat을 게시하면 확실하게 좁힐 수 있습니다. 내가 처음 보게되는 것은 반환 유형이 mClient.portToIntersymbolTime(mServerPort, 1) 인 것입니다. EditText에는 CharSequence 유형이 필요합니다. 나는 당신이 .toString 또는 그와 비슷한 것을 사용해야한다고 확신합니다.

+0

반환 유형은 int입니다. 나는 그것이 println이나 비슷한 것을 취할 것이라고 생각했는데, 이는 int가 괜찮을 것임을 의미한다. 그것이 오해였습니까? – Colleen

+0

오해였습니다. – Colleen

+0

mClient는 원하는 문자열을 만들고 서식을 지정하기 위해 toString 메서드를 추가 할 수있는 다른 클래스의 확장입니다 (이미있는 문자열이 없다고 가정). 또는 그것이 int 인 경우 int에 저장하고 toString을 다음과 같이 사용합니다 :'new int symbolTime = mClient.portToIntersymbolTime (mServerPort, 1);'then'((TextView) findViewById (R.id.intersymboltime)). setText (symbolTime .toString)' – cstrutton

0

제공된 정보를 사용하면 코드를 디버깅하기가 정말 어렵습니다. Logcat의 오류 로그와 portToIntersymbolTime 코드를 제공해 주시겠습니까? 지금 본 내용을 기반으로 hostText가 XML에서 누락되었습니다. 하지만 나는 (당신이 ((TextView)findViewById(R.id.hostText)).setText(mServerHost);이 기존 코드의 일부라고 말했기 때문에) XML의 해당 섹션을 붙여 넣지 않았다고 가정합니다.

+0

죄송합니다. 오류의 원인이되는 것은 마지막으로 intersymboltime입니다. 코드의 거대한 덩어리가 아니기 때문에 스 니펫을 제공했습니다. 오류 로그를 게시 할 수있을 정도로 logcat을 알아 내려고 노력할 것입니다. – Colleen

+0

eclipse를 사용하는 경우 logcat을 도킹 가능한 창으로 추가 할 수 있습니다. "Window-> Show View-> Others"로 가십시오. Android를 확장하고 logcat을 선택하십시오. 코드를 다시 실행하면 오류가 빨간색으로 표시됩니다. –

관련 문제