2012-07-05 81 views
0

我有下面的最小程序顯示我的問題(android 2.2(API 8)):如果我調用start() - 從onCreate()工作正常,但如果我從onWindowFocusChanged()調用它我不能從微調框中選擇一個項目。有誰能夠幫助我?Android微調:如果在onCreate()之外調用選項是不可能的

package de.thomasklein1982; 

import java.util.ArrayList; 
import java.util.List; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 

public class SpinnerExample extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //call start() from here and everything is just fine 
     //start(); 
    } 

    @Override 
    public void onWindowFocusChanged(boolean hasFocus) { 
     super.onWindowFocusChanged(hasFocus); 
     //call start() from here and it's impossible to select a spinner-item 
     start(); 
    } 

    public void start(){ 
     Spinner spinner=new Spinner(this); 
     List<String> list = new ArrayList<String>(); 
     list.add("Item 1"); 
     list.add("Item 2"); 
     list.add("Item 3"); 
     ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getBaseContext(), 
        android.R.layout.simple_spinner_item, list); 
     dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(dataAdapter); 
     setContentView(spinner);  
    } 
} 
+0

你爲什麼試圖從onWindowFocusChanged設置ContentView? – Martze 2012-07-05 10:39:15

+0

這是一個很長的故事。如果我告訴你,我必須嗎? – thomas 2012-07-05 10:48:28

+0

我不想知道你的生活的故事,即使這可能是有趣的。你想通過從onWindowFocusChanged設置ContentView來發生什麼? – Martze 2012-07-05 10:51:37

回答

1

當您選擇微調器中的任何項目時,也會調用您的start()方法。因此它每次都變成一個新創建的,第一個默認選擇列表中的第一個。

相關問題