2011-10-18 44 views
0

我在我的兒童活動中有微調。這意味着我的活動是一個活動組的孩子不能在我的活動中顯示微調

當我點擊我的微調它崩潰了。它崩潰,我點擊選擇(它甚至不顯示選擇)之前在這裏看到:

public class PriceCalculator extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.calculator); 

     Spinner metalSpinner=(Spinner)findViewById(R.id.metalSpinner); 
     ArrayAdapter<String> metalDataAdapter=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.Metals)); 

     metalSpinner.setAdapter(metalDataAdapter); 

     metalSpinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, 
        int position, long id) { 
       TextView priceTextView=(TextView)findViewById(R.id.priceTextView); 
       priceTextView.setText(""+parent.getItemAtPosition(position)); 
      } 
      @Override 
      public void onNothingSelected(AdapterView<?> arg0) {} 
     }); 
    } 

} 

我的錯誤日誌在這裏:

10-18 17:25:24.828: ERROR/AndroidRuntime(32670): FATAL EXCEPTION: main 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670): android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running? 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at android.view.ViewRoot.setView(ViewRoot.java:505) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at android.view.Window$LocalWindowManager.addView(Window.java:424) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at android.app.Dialog.show(Dialog.java:241) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at android.app.AlertDialog$Builder.show(AlertDialog.java:802) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at android.widget.Spinner.performClick(Spinner.java:257) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at android.view.View$PerformClick.run(View.java:8816) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at android.os.Handler.handleCallback(Handler.java:587) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at android.os.Handler.dispatchMessage(Handler.java:92) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at android.os.Looper.loop(Looper.java:123) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at java.lang.reflect.Method.invoke(Method.java:521) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
10-18 17:25:24.828: ERROR/AndroidRuntime(32670):  at dalvik.system.NativeStart.main(Native Method) 

是您的活動運行? 但我的活動正在運行。這是否發生在活動是一個孩子?

+0

如果問題解決了使用目前的活動範圍內,請寫一個答案,並接受它使這個問題從未解決的問題列表中刪除。 – JJJ

+0

@mahe madhi你使用TabActivity或ActivityGroup嗎? –

回答

2

嘗試更換,

setContentView(R.layout.calculator); 

通過

View contentView = LayoutInflater.from(getParent()).inflate(R.layout.calculator, null); 
setContentView(contentView); 
0

試着改變你的Context適配器與當前活動上下文。該行:

ArrayAdapter<String> metalDataAdapter=new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.Metals)); 

應改爲:

ArrayAdapter<String> metalDataAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.Metals)); 

據我所知,最好在創建所有的UI組件