2012-05-21 25 views
5

मैं एक स्पिनर नियंत्रण पर वस्तुओं का प्रतिनिधित्व करने के लिए एक कस्टम ArrayAdapter नहीं चुना जाता है, मैं अपने आइटम सूची लोड कर सकते हैं और चयन के लिए यह दिखाने के लिए, लेकिन जब वास्तविक चयन होता स्पिनर कुछ भी नहीं पता चलता है।स्पिनर प्रदर्शित आइटम

अभ्यास कोड:

public MetroData metroData; 
private Spinner spinner; 

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

    metroData = new MetroData(); 
    spinner = (Spinner) findViewById(R.id.spinner1); 
    StopArrayAdapter dAdapter = new StopArrayAdapter(this, metroData.Stops); 

    spinner.setAdapter(dAdapter); 
} 

StopArrayAdapter:

public class StopArrayAdapter extends ArrayAdapter<MetroStop> { 

private List<MetroStop> items; 
private Activity activity; 

public StopArrayAdapter(Activity activity, List<MetroStop> items) { 
    super(activity, android.R.layout.simple_list_item_1, items); 
    this.items = items; 
    this.activity = activity; 
} 

@Override 
public View getDropDownView(int position, View convertView, ViewGroup parent) { 
    TextView v = (TextView) super.getView(position, convertView, parent); 

    if (v == null) { 
     v = new TextView(activity); 
    } 
    v.setTextColor(Color.BLACK); 
    v.setText(items.get(position).getName()); 
    return v; 
} 

@Override 
public MetroStop getItem(int position) { 
    return items.get(position); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View v = convertView; 

    if (v == null) { 
     LayoutInflater inflater = activity.getLayoutInflater(); 
     v = inflater.inflate(R.layout.view_spinner_item, null); 
    } 
    TextView lbl = (TextView) v.findViewById(R.id.text1); 
    lbl.setTextColor(Color.BLACK); 
    lbl.setText(items.get(position).getName()); 
    return convertView; 
} 
} 

स्पिनर दृश्य आइटम टेम्पलेट:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:textColor="#222"/> 

क्यों चयनित आइटम दृश्य काम नहीं करता है पर कोई भी विचार? बीटीडब्ल्यू, मैंने एक ही परिणाम के साथ एक सामान्य ArrayAdapter के साथ भी कोशिश की है।

अद्यतन लगता है कि दृश्य उत्पन्न होता है लेकिन पदानुक्रम दर्शक को देखते हुए, दृश्य प्रस्तुत नहीं किया जा रहा है, माप/लेआउट/ड्रा = एन/ए।

+0

टेक्स्ट के लिए जाँच करें – Krish

+0

नहीं, टेक्स्ट रंग का चयनित आइटम दृश्य के लिए कोई प्रभाव नहीं पड़ता है, मैंने दोनों के साथ या बिना प्रयास किया है। – Andres

उत्तर

4

मुझे पता चला कि समस्या क्या थी। चूंकि मैं इंटरनेट से स्पिनर के लिए डेटा ला रहा था, इसलिए मुझे एक नोटिफाइडडेटाट चेंज() को ट्रिगर करने की आवश्यकता थी, भले ही स्पिनर की सामग्री अपडेट की गई हो। ऐसा लगता है कि चयनित आइटम दृश्य को नोटिस नहीं मिला।