Reputation:
I know there is already solution regarding this topic but I have been unsuccessful in fixing the issue.
I am new to android and also new to this group. I am trying to implement the spinner in onCreateView()
method. I followed this tutorial Android developers
But when I run this app in AVD it suddenly stops and close the app.
Please help me to fix the issue.
This is my java Code
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import static android.R.layout.simple_spinner_dropdown_item;
import static android.R.layout.simple_spinner_item;
public class edit_information extends Fragment implements AdapterView.OnItemSelectedListener {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstaceState){
Spinner spinner = (Spinner) getActivity().findViewById(R.id.spinner1);
//Creating an array adapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getContext(),R.array.hall_type,simple_spinner_item);
//Layout to choose the dropdown list
adapter.setDropDownViewResource(simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
return inflater.inflate(R.layout.edit_information,container,false);
}
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(adapterView.getContext(),"Hall Selected: \n"+adapterView.getItemAtPosition(i).toString(),Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
}
Here is the logcat file error
FATAL EXCEPTION: main
Process: com.example.lokesh.eveapp, PID: 18424
java.lang.NullPointerException
at com.example.lokesh.eveapp.edit_information.onCreateView(edit_information.java:27)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2087)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1113)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1295)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801)
at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1643)
at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:679)
at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:166)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1272)
at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:672)
at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:634)
at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:615)
at com.example.lokesh.eveapp.Member_Activity.onTabSelected(Member_Activity.java:81)
at android.support.design.widget.TabLayout.dispatchTabSelected(TabLayout.java:1154)
at android.support.design.widget.TabLayout.selectTab(TabLayout.java:1147)
at android.support.design.widget.TabLayout.selectTab(TabLayout.java:1117)
at android.support.design.widget.TabLayout$Tab.select(TabLayout.java:1412)
at android.support.design.widget.TabLayout$TabView.performClick(TabLayout.java:1520)
at android.view.View$PerformClick.run(View.java:18568)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5021)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
at dalvik.system.NativeStart.main(Native Method)
Logcat says NullPointerException on line 27 this is the code on line 27
spinner.setAdapter(adapter);
Kindly help.
Thank you
Upvotes: 0
Views: 557
Reputation: 1341
You are doing it wrong.
Problem is in onCreateView method. You cannot create View elements using getActivity(). Your spinner is null because it cannot be found.
So instead of this:
Spinner spinner = (Spinner) getActivity().findViewById(R.id.spinner1);
use this:
View view = inflater.inflate(R.layout.edit_information, container, false);
Spinner spinner = (Spinner) view.findViewById(R.id.spinner1);
return view;
Best regards and happy coding.
Upvotes: 1