2015-07-11 106 views
0

使用下面的代碼我想簡單地更改微調器值選擇時的佈局。但是,當我的活動加載時,旋轉器不會加載要選擇的值。使用微調器更改佈局

奇怪的是,當我刪除(在它下面的所有內容)的代碼

spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

微調值再次顯示。

public class ListCarsActivity extends Activity implements OnItemClickListener, OnClickListener, OnItemSelectedListener { 

public static final String TAG = "ListCarsActivity"; 
Spinner spinner; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.list_cars); 

    spinner = (Spinner) findViewById(R.id.spinner3); 
    ArrayAdapter adapter= ArrayAdapter.createFromResource(this,R.array.domain,android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 
    spinner.setOnItemSelectedListener(this); 
    // initialize views 
    initViews(); 

    } 

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View view, 
            int position, long row_id) { 

      switch(position){ 
       case 1: 
        setContentView(R.layout.list_cars); 
        break; 
       case 2: 
        setContentView(R.layout.list_owners); 
        break; 
      } 
      setContentView(R.layout.list_cars); 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub 

     } 

    }); 

回答

0

你所指的微調是在你的第一個活動。在您更換內容後,微調控制器不再存在了。如果第二個佈局中有另一個微調器,則必須重新連接並再次設置偵聽器。基本上你必須在每個setContentView之後運行你的onCreate ...

作爲一個方面說明,無論你想要做什麼,這可能不是要走的路。要顯示另一個完整的佈局,最好使用另一個活動。

+0

所以我應該基本上爲每個微調項目建立一個新的活動?這些都將成爲每個新活動的列表視圖。我可以重新使用相同的listview適配器嗎?由於所有的列表視圖都是相同的。 – neo