2014-09-23 97 views
0

當我嘗試在片段中的微調器上設置適配器並運行應用程序後,一切正常,但微調器中的列表爲空。在搜索了許多像我的問題這樣的案例之後,我仍然無法弄清楚原因。 任何意見將不勝感激。在微調器上設置適配器,但得到空列表

public class DrinkFragment extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.fragment_drink, container, false); 

    mSpDrinkItem = (Spinner)v.findViewById(R.id.sp_drink_list); 

    ArrayAdapter<CharSequence> drinkAd = ArrayAdapter.createFromResource(getActivity(), R.array.drink_item, android.R.layout.simple_spinner_item); 
    drinkAd.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    mSpDrinkItem.setAdapter(drinkAd); 

    mSpTemp = (Spinner)v.findViewById(R.id.sp_temp_list); 
    mBtnOrder = (Button)v.findViewById(R.id.btn_order); 
    mTxvOrderedList = (TextView)v.findViewById(R.id.txv_ordered_list); 

    setListeners(); 
    return v; 
} 
+0

什麼是您的drink_item陣列是什麼樣子? – 2014-09-23 17:19:23

+0

感謝您的回答,它看起來像: <字符串數組名= 「drink_item」> 珍珠奶茶 波霸奶茶 仙草凍奶茶 檸檬汁 Javakid 2014-09-23 17:52:20

回答

0

嗯......我沒有看到你發佈的代碼有什麼問題。我想知道問題出在你的fragment_drink.xml文件上嗎?

在任何情況下,我都會根據您的數據彙總一個工作示例。

MainActivity:

package com.example.spinnerfragmenttest; 

import android.app.Activity; 
import android.os.Bundle; 

public class MainActivity extends Activity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
} 

DrinkFragment:

package com.example.spinnerfragmenttest; 

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 

public class DrinkFragment extends Fragment 
{ 
    private Spinner mSpDrinkItem; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     View v = inflater.inflate(R.layout.fragment_drink, container, false); 

     mSpDrinkItem = (Spinner)v.findViewById(R.id.sp_drink_list); 

     ArrayAdapter<CharSequence> drinkAd = ArrayAdapter.createFromResource(getActivity(), R.array.drink_item, android.R.layout.simple_spinner_item); 
     drinkAd.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     mSpDrinkItem.setAdapter(drinkAd); 


     return v; 
    } 
} 

activity_main.xml中:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <fragment android:name="com.example.spinnerfragmenttest.DrinkFragment" 
       android:id="@+id/drink_fragment" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" /> 

</RelativeLayout> 

fragment_drink.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <Spinner android:id="@+id/sp_drink_list" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true"/> 

</RelativeLayout> 

arrays.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <string-array name="drink_item"> 
     <item>珍珠奶茶</item> 
     <item>波霸奶茶</item> 
     <item>仙草凍奶茶</item> 
     <item>檸檬汁</item> 
    </string-array> 

</resources> 

這將產生以下微調(顯示正常,在下拉模式)

Normal

Dropped Down

+0

非常感謝您的回覆^^ – Javakid 2014-09-24 01:47:20

+0

當然!如果您覺得它有用,請接受我的答案。 – 2014-09-24 02:03:11

+0

我使用上面的代碼創建了一個新項目,它工作。 ^^ – Javakid 2014-09-24 06:31:51