2

我对android编程很陌生,所以请原谅。

我有一个任务,我需要在当前代码库的 xml 中添加一个文本框,然后在用户编辑文本框时更改代码中的变量。

所以我添加了文本框,它显示得很好,但是当我尝试初始化它时,我收到一个错误,表明应用程序已意外停止,并且 LogCat 中有一堆东西。

澄清:只有最后一个文本框 intersymboltime 会导致错误。如果我注释掉它的初始化,一切运行正常。

我的 xml 示例(前两个来自现有代码,用于比较):

    <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 中(前两个调用在现有代码中,用于比较):

    ((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:线程退出未捕获的异常(组= 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(Native Method) 04-13 18 :10:17.576: E/AndroidRuntime(716): at java.lang.reflect.Method.invoke(Method.java:507) 04-13 18:10:17.576: E/AndroidRuntime(716): at com.android。内部操作系统ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 04-13 18:10:17.576: E/AndroidRuntime(716): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 04-13 18:10:17.576: E/AndroidRuntime(716): at dalvik.system.NativeStart.main(Native Method) 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): at 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 回答