2012-05-12 2 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

내부 클래스를 정적 ​​(개인용)으로 선언하는 것이 좋습니다 - 'private static class MyOnItemSelectedListener ...' – MByD

답변

0

귀하의 이동 방법은 실제로 당신은 당신의 활동의 레이아웃을 변경 앱이 아무데도 갈 수 있도록하는 것 해달라고.

2 번째 레이아웃에는 ID가있는 회 전자 요소가 없다고 생각합니다. 그게 왜 사라 졌는지.

다른 활동을 시작하지 않고이 활동으로 돌아 오지 않으면 onCreate() 메소드가 호출되지 않고 회 전자 설정이 다시 수행되지 않습니다.

은 당신 싶어 이렇게하면 필터보기 위해 별도의 작업을 만들고

startActivity(new Intent(this, filterActivity.class) 

또는

이 필터 레이아웃 "수도"작업에 스피너를 제공하여 이동합니다. 당신이 그것을 보이기를 원하지 않는다면 그냥 사라지게됩니다.

spinner.setVisibility(View.GONE); 
관련 문제