나는 안드로이드 프로그래밍에별로 익숙하지 않으므로 용서하십시오.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 더
반환 유형은 int입니다. 나는 그것이 println이나 비슷한 것을 취할 것이라고 생각했는데, 이는 int가 괜찮을 것임을 의미한다. 그것이 오해였습니까? – Colleen
오해였습니다. – Colleen
mClient는 원하는 문자열을 만들고 서식을 지정하기 위해 toString 메서드를 추가 할 수있는 다른 클래스의 확장입니다 (이미있는 문자열이 없다고 가정). 또는 그것이 int 인 경우 int에 저장하고 toString을 다음과 같이 사용합니다 :'new int symbolTime = mClient.portToIntersymbolTime (mServerPort, 1);'then'((TextView) findViewById (R.id.intersymboltime)). setText (symbolTime .toString)' – cstrutton