2012-05-12 25 views
0

我是Android新手,正在嘗試導航和顯示信息。我成功地在這個應用程序的主視圖上放置了一個微調器,但是當我點擊另一個視圖(通過執行goFilter的Butoton)並返回(通過執行goHome的按鈕)時,會出現佔位符。我確定它與goHome沒有加載微調器類信息有關,但我不知道如何以不同的方式做。當我從另一個主視圖返回時,不會顯示Android微調框

對此提出建議? .java代碼如下:

package com.example.hellorelative; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.widget.AdapterView.OnItemSelectedListener; 
import android.widget.AdapterView; 


public class HelloRelative extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Spinner spinner = (Spinner) findViewById(R.id.spinner); 
     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
       this, R.array.planets_array, android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(adapter); 
     spinner.setOnItemSelectedListener(new MyOnItemSelectedListener()); 

    } 
    public class MyOnItemSelectedListener implements OnItemSelectedListener { 

     public void onItemSelected(AdapterView<?> parent, 
      View view, int pos, long id) { 
      Toast.makeText(parent.getContext(), "The planet is " + 
       parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); 
     } 

     public void onNothingSelected(AdapterView parent) { 
      // Do nothing. 
     } 
    } 
    public void goFilter(View view) { 
     setContentView(R.layout.c_filter); 
    } 
    public void goHome(View view) { 
     setContentView(R.layout.main); 
    } 
} 
+0

不相關,但最好將內部類聲明爲static(也可能是private) - 「private static class MyOnItemSelectedListener ...」 – MByD

回答

0

你的去方法其實似乎並沒有使應用程序去任何地方,你只是改變你的活動佈局。

我想第二個佈局沒有帶有id的微調元素。這就是爲什麼它消失了。

因爲你永遠不會開始另一個活動,並返回到這一個,onCreate()方法將不會被調用,你的微調不會被再次設置。

你想做的事是你的過濾視圖中創建一個額外的活動,並與導航

startActivity(new Intent(this, filterActivity.class) 

提供飛旋在你的過濾器佈局「可能」的工作。如果你不想讓它可見,只需將其設置消失即可。

spinner.setVisibility(View.GONE); 
相關問題