java - 内部存储:微调器值和 TextView 为整数

标签 java android xml crash integer

已经搜索了2天,我真的无法解决此问题。
无论如何,我正在使用的方法可以在EditTexts上正常工作,但不能用于TextViews和Spinners。 当按下保存器按钮时,它使崩溃。

我是初学者,因此请详细说明!谢谢!

Java保存部分:

public void saver(View view) throws Exception

  { 
    String mag = readFields();
      saveToFile(mag);
  }

  private String readFields()
  { 
      int[] inputIDs = new int[]{
                                R.id.email_address,
                                R.id.text_date,
                                R.id.txtTime,
                                R.id.spinner1,
                                R.id.spinner2
                                };
     String outputMag = "";
     for( int id: inputIDs)
     {

         EditText textField = (EditText)findViewById(id);
         outputMag +=  textField.getText().toString() + ",";
     }
     return outputMag.substring(0, outputMag.length() -1 ) + "\n";
  }

  private void saveToFile(String message) throws Exception
  {
      String filePath = getFilesDir().toString() + "/contact.txt";
      FileOutputStream out = new FileOutputStream(filePath, true);
      out.write(message.getBytes());
      out.close();
  }

整个XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".AddEventActivity" >

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/txtTime"
        android:text="@string/ch_label2" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button2"
        android:layout_alignTop="@+id/text_date"
        android:text="@string/ch_label" />

    <EditText
        android:id="@+id/email_address"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/addeventname"
        android:inputType="text" />

    <TextView
        android:id="@+id/text_date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/email_address"
        android:layout_marginTop="20dp"
        android:text="text_date txt"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/txtTime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button"
        android:layout_marginTop="18dp"
        android:text="text_time txt"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:entries="@array/country_array"
        android:prompt="@string/select" />

    <Spinner
        android:id="@+id/spinner2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/spinner1"
        android:entries="@array/upprepa_array"
        android:prompt="@string/select2" />

    <Button
        android:id="@+id/buttontospinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/spinner2"
        android:text="@string/button_label" 
        android:onClick="saver" />

LogCat崩溃时:
02-11 18:31:12.058: D/dalvikvm(7771): GC_CONCURRENT freed 67K, 2% free 9444K/9607K, paused 9ms+25ms
02-11 18:31:12.338: I/dalvikvm(7771): threadid=3: reacting to signal 3
02-11 18:31:12.478: I/dalvikvm(7771): Wrote stack traces to '/data/anr/traces.txt'
02-11 18:31:22.419: D/AndroidRuntime(7771): Shutting down VM
02-11 18:31:22.419: W/dalvikvm(7771): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
02-11 18:31:22.459: E/AndroidRuntime(7771): FATAL EXCEPTION: main
02-11 18:31:22.459: E/AndroidRuntime(7771): java.lang.IllegalStateException: Could not execute method of the activity
02-11 18:31:22.459: E/AndroidRuntime(7771):     at android.view.View$1.onClick(View.java:3044)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at android.view.View.performClick(View.java:3511)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at android.view.View$PerformClick.run(View.java:14105)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at android.os.Handler.handleCallback(Handler.java:605)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at android.os.Handler.dispatchMessage(Handler.java:92)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at android.os.Looper.loop(Looper.java:137)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at android.app.ActivityThread.main(ActivityThread.java:4424)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at java.lang.reflect.Method.invokeNative(Native Method)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at java.lang.reflect.Method.invoke(Method.java:511)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at dalvik.system.NativeStart.main(Native Method)
02-11 18:31:22.459: E/AndroidRuntime(7771): Caused by: java.lang.reflect.InvocationTargetException
02-11 18:31:22.459: E/AndroidRuntime(7771):     at java.lang.reflect.Method.invokeNative(Native Method)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at java.lang.reflect.Method.invoke(Method.java:511)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at android.view.View$1.onClick(View.java:3039)
02-11 18:31:22.459: E/AndroidRuntime(7771):     ... 11 more
02-11 18:31:22.459: E/AndroidRuntime(7771): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText
02-11 18:31:22.459: E/AndroidRuntime(7771):     at apps.rasmusmyhrberg.smartcalendar.AddEventActivity.readFields(AddEventActivity.java:67)
02-11 18:31:22.459: E/AndroidRuntime(7771):     at apps.rasmusmyhrberg.smartcalendar.AddEventActivity.saver(AddEventActivity.java:50)
02-11 18:31:22.459: E/AndroidRuntime(7771):     ... 14 more
02-11 18:31:23.099: I/dalvikvm(7771): threadid=3: reacting to signal 3
02-11 18:31:23.119: I/dalvikvm(7771): Wrote stack traces to '/data/anr/traces.txt'
02-11 18:31:23.669: I/dalvikvm(7771): threadid=3: reacting to signal 3
02-11 18:31:23.669: I/dalvikvm(7771): Wrote stack traces to '/data/anr/traces.txt'
02-11 18:31:24.159: I/dalvikvm(7771): threadid=3: reacting to signal 3
02-11 18:31:24.179: I/dalvikvm(7771): Wrote stack traces to '/data/anr/traces.txt'
02-11 18:31:24.719: I/dalvikvm(7771): threadid=3: reacting to signal 3
02-11 18:31:24.739: I/dalvikvm(7771): Wrote stack traces to '/data/anr/traces.txt'
02-11 18:31:25.290: I/dalvikvm(7771): threadid=3: reacting to signal 3
02-11 18:31:25.309: I/dalvikvm(7771): Wrote stack traces to '/data/anr/traces.txt'
02-11 18:31:25.859: I/dalvikvm(7771): threadid=3: reacting to signal 3
02-11 18:31:25.879: I/dalvikvm(7771): Wrote stack traces to '/data/anr/traces.txt'
02-11 18:31:26.489: I/dalvikvm(7771): threadid=3: reacting to signal 3
02-11 18:31:26.489: I/dalvikvm(7771): Wrote stack traces to '/data/anr/traces.txt'
02-11 18:31:26.549: I/Process(7771): Sending signal. PID: 7771 SIG: 9

最佳答案

您正在将每个元素都转换为EditText。当inputIDs之一未引用EditText时,该元素将为不同的类。 TextViewSpinner不是EditText的实例,因此不能转换为EditText

您将需要查看您关心的每种类型,并调用适当的方法来检索所需的信息。然后,您可以将它们组合在一起成为输出消息。

关于java - 内部存储:微调器值和 TextView 为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21709127/

相关文章:

java - 使用增量时间来改善运动

java - 如何通过java连接正确的MySQL "desc table"

Android BottomNavigationView 禁用图标标题

android - QuietlyCoding NumberPicker如何使用setOnPreferenceChangeListener?

python - ElementTree findall() 返回空列表

python - 如何在 ReportLab 中的同一段落中使用多种文本颜色?

java - MDB 中的 JDK 5 文件/流读取超时 API

java - 如何测试复杂对象图的相等性?

android - 如果 chart.setVisibleXRangeMaximum 大于特定值,条目的 Drawable Icon 将消失

javascript - 让 XML 以 HTML 形式显示