2014-02-12 3 views
0

새 버튼을 동적으로 추가하기 위해 미리 정의 된 버튼을 사용하고 있습니다.
그러나 응용 프로그램을 다시 시작하면 동적으로 생성 된 단추가 만들어진 레이아웃에 나타나지 않습니다.응용 프로그램을 다시 시작하면 동적으로 생성 된 단추가 표시되지 않습니까?

단추를 생성하는 코드. 주요 활동에서

if(v == btnaddnew)       //Button to new buttons in layout Dynamically 
{ 
    final Button btn1 = new Button(this); 
    btn1.setText("New"); 
    btn1.setId(btncount); 
    LinearLayout ll = (LinearLayout)findViewById(R.id.layout1); 
    LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);  
    ll.addView(btn1, lp); 
    btncount++; 
} 

int btncount = 15; 
+1

경우 앱에서 해당 코드를 실행하는? 사형 집행시''무엇을 할 것인가? –

+0

@FD_ 이것은 버튼을 생성하는 레이아웃입니다 –

+1

앱을 닫거나 앱을 배경으로 유지하기 위해 홈 버튼을 누르는 것처럼 앱을 다시 시작 하시겠습니까? 앱을 다시 시작하면 다시 onCreate가 호출되며 동적 버튼 만들기가 onCreate에없는 경우 해당 버튼이 표시되지 않습니다. –

답변

0

매번 당신은에서 onCreate 방법은 당신의 활동에 대해 호출되는 응용 프로그램을 종료하고 다시 시작! 기본 layout.xml 파일을로드하는 것으로 의심됩니다. 동적으로 추가 된 버튼은이 레이아웃의 일부가 아니며 코드에서만 정의됩니다. 이 동적 버튼을 추가하는 코드가 onCreate에 없다고 가정하고 있습니다. 아마도 버튼 클릭 콜백일까요? 위의 이유로 응용 프로그램을 닫으면 내 요점은 동적으로 추가 된 아티팩트가 존재하지 않는다는 것입니다!

마지막 상태를 닫은 후 다시 시작하려면 활동에 대해 onDestroy 메서드가 호출되기 전에 현재 레이아웃을 저장하는 방법을 찾아야합니다! 이 저장된 레이아웃은 onCreate에서 다시로드 할 수 있습니다. 당신의 onCreate에서 예를 들어로드 된 레이아웃이 저장되어 있는지 확인할 수 있습니다. 레이아웃 파일에서로드하지 않습니다.

편집 : 이것

봐 : http://developer.android.com/guide/components/activities.html#SavingActivityState

+0

네, 제가 직면하고있는 문제입니다. 이렇게 동적으로 생성 된 버튼을 저장하고'응용 프로그램 재시작 '후 레이아웃에'버튼'을 다시로드하는 방법을 알려주시겠습니까? 그래서'Dynamically Generated Buttons'는 생성 된'Layout'에 나타납니다. –

+0

답변을 업데이트했습니다. –

관련 문제