-2

Can you help me please to figure out the error below : I have some string resources, but i renamed them. Is it possible that my renaming causes the error ? Here is below the error.

Caused by: 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:89)
        at android.view.ContextThemeWrapper.getResourcesInternal(ContextThemeWrapper.java:127)
        at android.view.ContextThemeWrapper.getResources(ContextThemeWrapper.java:121)
        at android.support.v7.app.AppCompatActivity.getResources(AppCompatActivity.java:542)
        at com.andersen.dogsapp.dogs.DogsApp.<init>(DogsApp.java:12)

The code:

public class DogsApp extends AppCompatActivity {
// This line below has called an error
    String owner[] = getResources().getStringArray(R.array.owners);

    LayoutInflater layoutInflater;
    private LinearLayout scrollinlayout;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dogs_app);
        scrollinlayout = findViewById(R.id.scroll_child_linlayout);
        layoutInflater = getLayoutInflater();
        for(int i = 0; i< owner.length; i++){
            View inflatedView = layoutInflater.inflate(R.layout.owners_item, scrollinlayout, false);
            TextView textViewName = inflatedView.findViewById(R.id.owner_name);
            textViewName.setText(owner[i]);
        }
    }
}

Thanks a lot!

Stanly T
  • 964
  • 1
  • 12
  • 30

1 Answers1

2

You need to perform that inside onCreate. Also you were defining array in wrong way.

Wrong

String owner[] = getResources().getStringArray(R.array.owners);

Right

String[] owner;

Make as this.

public class DogsApp extends AppCompatActivity {
// This line below has called an error
    String[] owner;

    LayoutInflater layoutInflater;
    private LinearLayout scrollinlayout;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dogs_app);
        scrollinlayout = findViewById(R.id.scroll_child_linlayout);
        owner = getResources().getStringArray(R.array.owners);
        layoutInflater = getLayoutInflater();
        for(int i = 0; i< owner.length; i++){
            View inflatedView = layoutInflater.inflate(R.layout.owners_item, scrollinlayout, false);
            TextView textViewName = inflatedView.findViewById(R.id.owner_name);
            textViewName.setText(owner[i]);
        }
    }


}
Jay Rathod
  • 11,131
  • 6
  • 34
  • 58