2014-11-10 2 views
0

나는 Theme = Theme.Dialog!대화 상자를로드하고 런타임에 뷰 추가

onCreate() 메서드에서 프로그래밍 방식으로 뷰를 만들고이 레이아웃을 RelativeLayout (id : myLayout!)으로 구성된 Layout에 추가합니다. 뭔가 같은 :

onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.myCustomizedLayout); 
RelativeLayout myLayout = (RelativeLayout) findViewById(R.id.myLayout); 

Button mybutton = new Button(this); 
//set RelativeLayout.LayoutParams here 
myLayout.add(mybutton, my RelativeLayout.LayoutParams); 
} 

나는 내가 루프하지 하나지만, 50 버튼을 추가하고있을 때, 그는 50 개 버튼의 모든 생성 myLayout에 추가 될 때까지 화면에 대화 상자를 표시 아니라고 언급 ..

루프를 시작하기 전에 contentView를 설정했기 때문에이 내용을 이해할 수 없습니다!

나는 같은 Thread..something에 루프를 넣어 시도 :

runOnUiThread(new Runnable(){ 
    for(i=0; i<50; i++){ 
     Button myButton = new Button(this); 
     //add LayoutParameters her 
     myLayout.add(myButton, LayoutParameters); 
    } 
}); 

그러나 심지어 내가 모든 것이 완료 될 때까지 그는 오직 대화 상자를 표시 스레드에서 실행할 때 ...

내 질문입니다 : 어떻게하면 가능한 빨리 화면에 대화 상자를 볼 수 있으며 런타임에 동적으로보기를 대화 상자에 추가 할 수 있습니다.

나는 너희들이 내 뜻을 이해하기를 바랍니다.

업데이트 :

android:theme="@style/dialog_style" 
+0

아무도 아이디어가 없습니까 ?? – Mike

답변

0

이 방법 createDialog 만들기 :

이 활동의 ​​스타일입니다 ..

<style name="dialog_style" parent="@android:style/Theme.Dialog"> 
    <item name="android:windowNoTitle">true</item> 
</style> 

및 매니페스트 파일에 내가 활동이 스타일을 추가

()를 호출하고 주 활동에 호출합니다 .java oncreate 메소드

private void createDialog(){ 

AlertDialog.Builder dialog = new AlertDialog.Builder(
       MainActivity.this); 
     dialog.setTitle("APP NAME"); 
     dialog.setMessage("Do you want to quit?"); 
     dialog.setIcon(R.drawable.ic_launcher); 
     dialog.setPositiveButton("NO", 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 

         dialog.cancel(); 
        } 
       }); 

     dialog.setNegativeButton("YES", 
       new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         finish(); 
         dialog.cancel(); 
        } 
       }); 
     dialog.show(); 

} 
+0

이것은 새로운 Dialog를 만들거나 Theme = Dialog가있는 내 활동을 표시합니까? 왜냐하면 나는 새로운 대화 상자를 만들고 싶지 않기 때문에 ... – Mike

+0

대화 상자에 매니페스트 파일의 활동 테마를 선언하셨습니까 ?? –

+0

확실히, 전에 말했듯이, 나는 Theme = Theme.Dialog를 추가했다. 내 불안감을 업데이트하고 styles.xml에서 파트를 추가했습니다. – Mike