2016-01-02 5 views
-3

У меня ошибка при использовании getRessources() для получения значений из string.xml.getResources() return a error

Вот мой файл:

import android.app.Activity; 
import android.util.Log; 
import android.content.Context; 


public class mailing extends Activity { 
    int[] mail_images= new int[]{0, R.drawable.simple, R.drawable.p}; 
    String[] mail_array_spinner = new String[]{getResources().getString(R.string.type_select),getResources().getString(R.string.maillist)}; 

    public int get_image_id(String check){ 
     int got=-1; 

     for(int i=0;i<mail_images.length;i++){ 
      if(mail_array_spinner[i].equals(check)){ 
       got=i; 
      } 
     } 
     return mail_images[got]; 
    } 
} 

Мое приложение останавливается при чтении кода и ошибки приходят формы:

String[] mail_array_spinner = new String[]{getResources().getString(R.string.type_select),getResources().getString(R.string.maillist)}; 

Вот лог:

01-02 16:59:39.255 6087-6087/com.example.xx.cxeapp D/typei: mail 
01-02 16:59:39.257 6087-6087/com.example.xx.cxeapp D/AndroidRuntime: Shutting down VM 
01-02 16:59:39.258 6087-6087/com.example.xx.cxeapp E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.example.xx.cxeapp, PID: 6087 
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference 
     at android.content.ContextWrapper.getResources(ContextWrapper.java:87) 
     at android.view.ContextThemeWrapper.getResources(ContextThemeWrapper.java:81) 
     at com.example.mouh.myapplication.mail.<init>(mail.java:11) 
     at Adapters.InProgressListAdapter.getView(InProgressListAdapter.java:62) 
     at android.widget.AbsListView.obtainView(AbsListView.java:2346) 
     at android.widget.ListView.measureHeightOfChildren(ListView.java:1280) 
     at android.widget.ListView.onMeasure(ListView.java:1188) 
     at android.view.View.measure(View.java:18788) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 
     at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:610) 
     at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:677) 
     at android.view.View.measure(View.java:18788) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:748) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) 
     at android.view.View.measure(View.java:18788) 
     at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1489) 
     at android.view.View.measure(View.java:18788) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:901) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) 
     at android.view.View.measure(View.java:18788) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) 
     at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1112) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:632) 
     at android.view.View.measure(View.java:18788) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:748) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) 
     at android.view.View.measure(View.java:18788) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 
     at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) 
     at android.view.View.measure(View.java:18788) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:748) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) 
     at android.view.View.measure(View.java:18788) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 
     at android.view.View.measure(View.java:18788) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 
     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) 
     at android.widget.LinearLayout.measureVertical(LinearLayout.java:748) 
     at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) 
     at android.view.View.measure(View.java:18788) 
     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 
     at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 
     at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643) 
     at android.view.View.measure(View.java:18788) 
     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2100) 
     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1216) 
     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1452) 

Любая помощь, чтобы исправить этот вопрос, пожалуйста? Благодарю.

+1

Какая ошибка? Мы не можем исправить то, чего не можем догадаться. – Dici

+0

Ошибка при остановке приложения при чтении GETRESSOURCE! В консоли журнала скажите: FATAL EXCEPTION в строке XX моего файла ... в строке i, указанной выше. –

+1

Опубликуйте свой логарифм. –

ответ

1

Вы не написали свой код внутри onCreate(), сделайте следующее

public class mailing extends Activity { 
     int[] mail_images; 
     String[] mail_array_spinner; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      mail_images= new int[]{0, R.drawable.simple, R.drawable.p}; 
      mail_array_spinner = new String[]{getResources().getString(R.string.type_select),getResources().getString(R.string.maillist)}; 


    } 

     public int get_image_id(String check){ 
      int got=-1; 
      mail_images= new int[]{0, R.drawable.simple, R.drawable.p}; 
      mail_array_spinner = new String[]{getResources().getString(R.string.type_select),getResources().getString(R.string.maillist)}; 
      for(int i=0;i<mail_images.length;i++){ 
       if(mail_array_spinner[i].equals(check)){ 
        got=i; 
       } 
      } 
      return mail_images[got]; 
     } 

}

+0

Спасибо за ваш ответ, но когда я сделал это, я получил 'get_image_id()' не распознано! такие же, как 'mail_images' и' mail_array_spinner' –

+0

Проверьте мой отредактированный ответ. –

+0

То же самое :(i вещь должна быть глобальной или что-то вроде этого. –

1

Вы пытаетесь вызвать GetResources() перед вашей деятельностью был создан, что приводит к нулевому указателю исключение. вызовите getResources в методе onCreate().

public class mailing extends Activity { 
int[] mail_images; 
String[] mail_array_spinner; 
    public void onCreate(Bundle savedInstanceState){ 
     super.OnCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mail_images = new int[]{0, R.drawable.simple, R.drawable.p}; 
     mail_array_spinner = new String[]{getResources().getString(R.string.type_select),getResources().getString(R.string.maillist)}; 
    } 
    public int get_image_id(String check){ 
     int got=-1; 

     for(int i=0;i<mail_images.length;i++){ 
      if(mail_array_spinner[i].equals(check)){ 
       got=i; 
      } 
     } 
     return mail_images[got]; 
    } 
} 
+0

что насчет 'public class mailing extends Activity'? –

+0

Хорошо, отправил полный ответ –

+0

Я только что попробовал, но у меня есть эта ошибка:' java.lang.NullPointerException: Попытка получить длину нулевого массива? любое исправление? –