2013-11-13 3 views
20

Пожалуйста, помогите мне, я не могу понять, почему эта ошибка. Совсем день назад это сработало. Я понимаю, что это serches for и id ist'n существует, но id находится в xml. Это дает мне ошибку здесь, в onCreate методе:

public class DoExamActivity extends Activity { 
    private DatabaseHandler db; 
    private EditText votoET; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.do_exam); 
     Bundle bundle = getIntent().getExtras(); 

     db = new DatabaseHandler(getApplicationContext()); 

     try { 
      transcript = new JSONObject(bundle.getString("transcript")); 
      exam = new JSONObject(bundle.getString("exam")); 
      teacher = new JSONObject(bundle.getString("teacher")); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     votoET = (EditText) findViewById(R.id.examValueET); //here 

Это do_exam.xml текста редактирования он не может найти. Вы можете видеть идентификатор!

 <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <ImageView 
       android:layout_height="30dp" 
       android:layout_gravity="left|center_vertical" 
       android:layout_weight="1" 
       android:background="@color/ios7orange" 
       android:contentDescription="@string/textValueDescr" 
       android:src="@drawable/rating_star" /> 

      <TextView 
       android:layout_height="50dp" 
       android:layout_weight="1" /> 

      <EditText 
       android:id="@+id/examValueET" 
       android:layout_height="40dp" 
       android:layout_gravity="center_vertical" 
       android:layout_marginRight="10dp" 
       android:layout_weight="5" 
       android:background="@drawable/rounded_edittext" 
       android:hint="@string/examValueHint" 
       android:inputType="text" 
       android:maxLines="1" /> 
     </TableRow> 

Дайте мне эту ошибку:

11-13 07:04:15.457: E/AndroidRuntime(1091): FATAL EXCEPTION: main 
11-13 07:04:15.457: E/AndroidRuntime(1091): java.lang.RuntimeException: Unable to start  activity ComponentInfo{com.utaa.iesami/com.utaa.iesami.activity.DoExamActivity}:  android.content.res.Resources$NotFoundException: String resource ID #0x0 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  android.app.ActivityThread.access$600(ActivityThread.java:141) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  android.os.Looper.loop(Looper.java:137) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  android.app.ActivityThread.main(ActivityThread.java:5103) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  java.lang.reflect.Method.invokeNative(Native Method) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  java.lang.reflect.Method.invoke(Method.java:525) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  dalvik.system.NativeStart.main(Native Method) 
11-13 07:04:15.457: E/AndroidRuntime(1091): Caused by:  android.content.res.Resources$NotFoundException: String resource ID #0x0 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  android.content.res.Resources.getText(Resources.java:239) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  android.widget.TextView.setText(TextView.java:3844) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  com.utaa.iesami.activity.DoExamActivity.onCreate(DoExamActivity.java:61) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  android.app.Activity.performCreate(Activity.java:5133) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at  android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
11-13 07:04:15.457: E/AndroidRuntime(1091):  ... 11 more 

я искал в классе R и идентификатор этого EditText есть и отличается от 0. Так почему эта ошибка?

КОД не ОБНОВЛЕНО

я уже очищено, ничего. Активность слишком велика, я добавил код до строки ошибки. Поэтому я использовал колпачки для всех идентификаторов, он работал в течение двух недель, теперь он дает мне ошибку только на этом ET.

+0

examValueET должны быть examvalueet не использовать капс письмо в ид delcaration – steevoo

+1

опубликовать полный код активности – Raghunandan

+0

добавить string.xml на вопрос также, вероятно, проблема приходит оттуда – ismail

ответ

63

Моя ошибка. Я ошибся строк, ошибка была от TextView.setText(int), где мне пришлось установить TextView.setText(String.valueOf(int)).

+1

Чтобы прояснить это, потому что когда вы делаете .setText (int), android ищет ресурсы (по ID (целое число)) –

12

Подобно тому, как @laalto сказал:

you're calling essentially setText(0) on your EditText. If you want to set the edittext value to 0, use setText(String) instead of setText(int).

Но я предполагаю, что это не ваша вина, потому что значение междунар может быть динамическим (вызывается из источника данных - БД), это был случай для меня, и я пришлось боксировать значение INT, т.е.

вместо

setText(int) 

использования

setText(String.valueOf(int)) 

Надеюсь, это поможет вам или кому-то! Счастливое кодирование !!!

Смежные вопросы