2016-07-04 6 views
1

ich folgend in meinem Fragmente habe, und ich versuche, einen Spinner zu erstellen, die Zahlen zeigt 1-5 als Auswahlmöglichkeiten:Spinner in XML angezeigt, aber nicht, wenn App Laden

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    final View rootview = inflater.inflate(R.layout.fragment_create, container, false); 
    mAddImageButton = (Button) rootview.findViewById(R.id.add_image_button); 
    mSelectNumberofPollAnswers = (Spinner) rootview.findViewById(R.id.number_of_answers_spinner); 
    // Inflate the layout for this fragment 

    // Create an ArrayAdapter using the string array and a default spinner layout 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity().getApplicationContext(), 
      R.array.number_of_poll_answers, android.R.layout.simple_spinner_item); 
    // Specify the layout to use when the list of choices appears 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    // Apply the adapter to the spinner 
    mSelectNumberofPollAnswers.setAdapter(adapter); 


    return inflater.inflate(R.layout.fragment_create, container, false); 
} 

strings.xml:

<string-array name="number_of_poll_answers"> 
     <item>1</item> 
     <item>2</item> 
     <item>3</item> 
     <item>4</item> 
     <item>5</item> 
    </string-array> 

XML:

<Spinner 
    android:id="@+id/number_of_answers_spinner" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight=".3"/> 
+0

Sie müssen zurückkehren 'rootview' von' onCreateView() '. Wie du es jetzt hast, gibst du eine andere, neu aufgeblasene, nicht initialisierte "Ansicht" zurück. –

+1

Danke! Willst du als Antwort einreichen und ich kann es als akzeptiert markieren? – tccpg288

Antwort

3

In Ihrem onCreateView() Methode, sind Sie ein neues, nicht initialisierteRückkehrin der return Anweisung. Stattdessen möchten Sie die View, die Sie zuvor aufgeblasen und initialisiert haben, zurückgeben. Das heißt, ändern Sie die return Aussage zu:

return rootview; 
1

Versuch:

return rootview; 

Statt

return inflater.inflate(R.layout.fragment_create, container, false); 
1

Sie müssen zurückkehren RootView wie diese

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) { 
final View rootview = inflater.inflate(R.layout.fragment_create, container, false); 
mAddImageButton = (Button) rootview.findViewById(R.id.add_image_button); 
mSelectNumberofPollAnswers = (Spinner) rootview.findViewById(R.id.number_of_answers_spinner); 
// Inflate the layout for this fragment 

// Create an ArrayAdapter using the string array and a default spinner layout 
ArrayAdapter<CharSequence> adapter =  ArrayAdapter.createFromResource(getActivity().getApplicationContext(), 
     R.array.number_of_poll_answers, android.R.layout.simple_spinner_item); 
// Specify the layout to use when the list of choices appears 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
// Apply the adapter to the spinner 
mSelectNumberofPollAnswers.setAdapter(adapter); 


return rootview; 
} 
Verwandte Themen