2

私はAndroidプログラミングに非常に慣れていないので、許してください。

現在のコードベースの xml にテキスト ボックスを追加し、ユーザーがテキスト ボックスを編集するときにコード内の変数を変更する必要がある割り当てがあります。

テキストボックスを追加したところ、問題なく表示されていますが、初期化しようとすると、アプリが予期せず停止したというエラーが表示され、LogCat に大量のものが表示されます。

明確化: 最後のテキスト ボックスである intersymboltime だけがエラーを引き起こします。初期化をコメントアウトすると、すべて正常に動作します。

私のxmlのサンプル(最初の2つは比較のために既存のコードからのものです):

    <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" />

私のonCreateで(比較のために、最初の2つの呼び出しは既存のコードにあります):

    ((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 は期待どおりに戻ります。

何が足りないの?!

編集: 私の logcat ログ:

04-13 18:10:17.556: W/ResourceType(716): リソース番号 0x00000100 の値を取得するときにパッケージ識別子がありません 04-13 18:10:17.566: D/AndroidRuntime(716): VM をシャットダウンしています 04-13 18: 10:17.566: W/dalvikvm(716): threadid=1: キャッチされない例外で終了するスレッド (group=0x40015560) 04-13 18:10:17.576: 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:3683) 04-13 18:10:17.576: E/AndroidRuntime(716): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) 04-13 18 :10:17.576: E/AndroidRuntime(716): java.lang.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 続き

4

2 に答える 2

0

与えられた情報では、コードをデバッグするのは非常に困難です。Logcat のエラー ログとportToIntersymbolTimeコードを教えてください。今見たところ、xml に hostText がありません。しかし、(既存のコードの一部であると言っているため((TextView)findViewById(R.id.hostText)).setText(mServerHost);) xml のそのセクションを貼り付けていないと思います。

于 2012-04-14T01:05:46.743 に答える
0

logcat を投稿すると、確実に絞り込むことができます。最初に確認するのは、 の戻り値の型ですmClient.portToIntersymbolTime(mServerPort, 1)。EditText には type が必要ですCharSequence。私はあなたが使用する必要があると確信して.toStringいます。

于 2012-04-14T01:07:11.513 に答える