在微调器上设置适配器,但得到空列表

问题描述:

当我尝试在片段中的微调器上设置适配器并运行应用程序后,一切正常,但微调器中的列表为空。在搜索了许多像我的问题这样的案例之后,我仍然无法弄清楚原因。 任何意见将不胜感激。在微调器上设置适配器,但得到空列表

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

感谢您的回答,它看起来像: 珍珠奶茶 波霸奶茶 仙草冻奶茶 柠檬汁串阵列> – Javakid 2014-09-23 17:52:20

嗯......我没有看到你发布的代码有什么问题。我想知道问题出在你的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