2011-11-22 87 views
0

我有一個由兩個片段組成的活動。左邊是一個側邊欄,右邊是一個MapView(見下面的截圖)。Android微調器對話框沒有填充?

在左側,我有一個微調器,將填充地圖上的對象。現在,我已經用一些值硬編碼,直到我找出這個問題。當選擇微調器時,會出現一個對話框,但它是空的。任何想法是怎麼回事?

這裏是我的左片段代碼(它不是很複雜):

package android.splitdisplay; 


import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemSelectedListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.Spinner; 
import android.widget.Toast; 

public class SideFragment extends Fragment { 
    String[] tracks = { "ObjectOne", "ObjectTwo", 
      "ObjectThree" 

    }; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     this.getActivity().setContentView(R.layout.sidefragment); 

     final Spinner s = (Spinner) this.getActivity().findViewById(
       R.id.track_spinner); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this 
       .getActivity().getBaseContext(), 
       android.R.layout.simple_spinner_item, tracks); 
     s.setAdapter(adapter); 

     s.setOnItemSelectedListener(new OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 
       int item = s.getSelectedItemPosition(); 
       Toast.makeText(SideFragment.this.getActivity().getBaseContext(), 
         "clicked "+item, Toast.LENGTH_SHORT).show(); 
      } 

       @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
      } 
     }); 

    } 

    public void onListItemClick(ListView parent, View v, int position, long id) { 

    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.sidefragment, container, true); 
    } 
} 

下面是SideFragment的XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Tracks" 
     android:textColor="#adff2f" 
     android:textSize="30sp" /> 

    <Spinner 
     android:id="@+id/track_spinner" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:drawSelectorOnTop="true" 
     android:prompt="@string/track_prompt" 
     android:spinnerMode="dialog" > 
    </Spinner> 

</LinearLayout> 

這是當我點擊我所看到的在微調:

What I am seeing

這裏是所有S的在一個zip烏爾斯河代碼:

http://db.tt/KMGXhZWc

回答

2

的問題是不是微調的問題是,你正在給兩個Spinners充氣。一個在onCreateView方法和其他在這一行:

this.getActivity().setContentView(R.layout.sidefragment); 

而且只有一個與供應商的微調...所以我建議你設置你所有的GUI變量在onCreationView這樣的:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.sidefragment, container, true); 
    final Spinner s = (Spinner) v.findViewById(
      R.id.track_spinner); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this 
      .getActivity().getBaseContext(), 
      android.R.layout.simple_spinner_item, tracks); 
    s.setAdapter(adapter); 

    s.setOnItemSelectedListener(new OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
      int item = s.getSelectedItemPosition(); 
      Toast.makeText(SideFragment.this.getActivity().getBaseContext(), 
        "clicked "+item, Toast.LENGTH_SHORT).show(); 
     } 

      @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
     } 
    }); 
    return v; 
} 

並刪除onCreate的重寫方法。

0

這是我一直做了我的紡紗

ArrayAdapter<CharSequence> cAdapter; 
    cAdapter = ArrayAdapter.createFromResource(this, R.array.colors,android.R.layout.simple_spinner_item); 
    int cSpinnerDD = android.R.layout.simple_spinner_dropdown_item; 
    cAdapter.setDropDownViewResource(cSpinnerDD); 
    color.setAdapter(cAdapter); 

給一個嘗試

+0

我試着類似的調用:int cSpinnerDD = android.R.layout.simple_spinner_dropdown_item; cAdapter.setDropDownViewResource(cSpinnerDD);它似乎沒有工作 – systemoutprintln