2014-01-12 6 views
-1

처음 앱을 시작하면 올바르게 표시됩니다. 닫은 후 다시 열면 상대 레이아웃 상단에있는 회 전자와 버튼이 보통 높이의 약 절반에 불과합니다 회 전자는 사용할 수 없습니다. 그것을 클릭하면 아무것도 드롭 다운 (그러나 버튼이 정상적으로 작동). 회 전자 아래의 다른 요소는 평소와 같이 표시됩니다.회 전자를 사용할 수 없으며 잘못 표시되었습니다.

나는 앱 검색 및 레이아웃 XML로 하루 반 동안 인터넷 검색을하고 거의 아무런 진전을 보지 못했다.

누구에게이 문제의 원인이 무엇인지에 대한 단서가 있습니까? 앱의 후속 실행에서만 발생합니다. 여기

는 레이아웃 XML입니다 :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

<Spinner 
    android:id="@+id/namespinner" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_toLeftOf="@+id/button1" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/namespinner" 
    android:layout_alignParentRight="true" 
    android:layout_alignTop="@+id/namespinner" 
    android:onClick="onEditButtonPressed" 
    android:text="@string/dob_edit" /> 

<TextView 
    android:id="@+id/secondsDisplay" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_alignParentBottom="true" 
    android:layout_marginBottom="36dp" 
    android:text="@string/seconds" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textSize="48sp" /> 

<TextView 
    android:id="@+id/minutesDisplay" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/secondsDisplay" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="28dp" 
    android:text="@string/minutes" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textSize="48sp" /> 

<TextView 
    android:id="@+id/hoursDisplay" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_above="@+id/minutesDisplay" 
    android:layout_marginBottom="27dp" 
    android:text="@string/hours" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textSize="48sp" /> 

<TextView 
    android:id="@+id/hourstext" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/hoursDisplay" 
    android:layout_alignBottom="@+id/hoursDisplay" 
    android:layout_alignLeft="@+id/daystext" 
    android:text="@string/hours_lable" 
    android:textAppearance="?android:attr/textAppearanceSmall" /> 

<TextView 
    android:id="@+id/dayDisplay" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/hoursDisplay" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="22dp" 
    android:text="@string/days" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textSize="48sp" /> 

<TextView 
    android:id="@+id/daystext" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/dayDisplay" 
    android:layout_toRightOf="@+id/namespinner" 
    android:text="@string/days_lable" 
    android:textAppearance="?android:attr/textAppearanceSmall" /> 

<TextView 
    android:id="@+id/minutesText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/minutesDisplay" 
    android:layout_alignBottom="@+id/minutesDisplay" 
    android:layout_alignLeft="@+id/hourstext" 
    android:text="@string/minutes_lable" 
    android:textAppearance="?android:attr/textAppearanceSmall" /> 

<TextView 
    android:id="@+id/secondstext" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/secondsDisplay" 
    android:layout_alignBottom="@+id/secondsDisplay" 
    android:layout_alignLeft="@+id/minutesText" 
    android:text="@string/seconds_lable" 
    android:textAppearance="?android:attr/textAppearanceSmall" /> 

이 그것을 호출하는 주요 활동의 관련 부분이어야한다 : 코드 표시를 정리하는


public class MainActivity extends Activity { 

    static Spinner nameSpinner; 
    ArrayAdapter nameAdapter; 
    static ArrayList nameList; 

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

    @Override 
    public void onResume() { 
    super.onResume(); 

     // get spinner and init array if needed 
     if (nameList == null) { 
      nameSpinner = (Spinner) findViewById(R.id.namespinner); 
      nameList = new ArrayList(); 
      nameList.add("(Add)"); 
     } 

     // populate spinner 
     nameAdapter = new ArrayAdapter(this, 
      android.R.layout.simple_spinner_dropdown_item, nameList); 
     nameSpinner.setAdapter(nameAdapter); 

     // listen for events/selections on the spinner 
     nameSpinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView parentView, 
      View selectedItemView, int position, long id) { 
      // read state 
      } 
     } 


     @Override 
     public void onNothingSelected(AdapterView parentView) { 
      // do I want to do anything here? 
     } 

     }); 
    } 
} 

편집 및 클래스 def를 추가하십시오. 및 클래스 변수.

+0

초보자를 위해 레이아웃 XML, 'Activity' 코드 및 회 전자에 대한 사용자 지정 어댑터 (있는 경우) –

+1

코드 게시. 그것은 매우 관련이 있습니다. – JiTHiN

+0

죄송합니다. 이전에 일부 코드를 추가 했어야했는데 정확하게 게시 할 부분이 확실하지 않았습니다. 방금 ​​linearlayout에서 스피너와 버튼을 래핑하려고했지만 동일한 동작으로 끝납니다. –

답변

0

회 전자 설정과 관련이없는 if 문에서 회 전자를 설정하는 것이 문제의 원인입니다. 이을 변경 :

if (nameList == null) { 
     nameSpinner = (Spinner) findViewById(R.id.namespinner); 
     nameList = new ArrayList(); 
     nameList.add("(Add)"); 
} 

nameSpinner = (Spinner) findViewById(R.id.namespinner); 
if (nameList == null) { 
     nameList = new ArrayList(); 
     nameList.add("(Add)"); 
} 

에있어이 분류.

좋은 밤, 신선한 눈이 필요한 곳. : P

0

oncreate 메소드의 onresume 메소드에 작성한 코드를 삽입해야합니다!

+0

귀하의 제안을 시도했지만 프로그램 실행에 영향을 미치지 않았습니다. 나는이 행동의 원인이 될 수있는 것을 잃어 버리고 있습니다. 왜 처음에는 완벽하게 작동 하나 그 이후에는 작동하지 않습니까? 무엇이 바뀔 수 있습니까? –

관련 문제