2014-03-31 2 views
0

EdittextListView을 대화 상자에 추가하려고합니다. dialog.addContentView(lstcontent,params) 메서드를 사용하여 대화 상자에보기를 추가합니다.대화 상자에 콘텐츠보기 추가

여기 내 코드입니다 :

dialog = new Dialog(MainActivity.this); 

final LinearLayout.LayoutParams lp = new 
LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 
LinearLayout.LayoutParams.WRAP_CONTENT); 

dialog.addContentView(edittext, lp); 
dialog.addContentView(listview,lp); 

dialog.show(); 

하지만 내 목록보기는 글고 치기에 있습니다. 위의 edittext를 listview에 설정하고 싶습니다.

here is capture of screen

나는이 너무에서 사용 :

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(-1, -2); 
LinearLayout layout = new LinearLayout(G.context, (AttributeSet) params); 

layout.addView(input); 
layout.addView(lstcontent); 
dialog.setcontentView(layout); 

하지만이 추락 응용 프로그램 : 의 LayoutParams는 android.util.Attributeset

에 캐스트 할 cannout
+0

입니다 보기도 –

답변

0

나는이 문제에 대한 새로운 길을 발견했다.

LayoutInflater inflate2 = ((Activity) G.context).getLayoutInflater(); 
View dialogView = inflate2.inflate(R.layout.layout_dialog, null); 

input = (EditText) dialogView.findViewById(R.id.edt1); 
lstcontent = (ListView) dialogView.findViewById(R.id.lst1); 

lstcontent.setAdapter(adapter); 

이것은 layout_dialog.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 
<EditText 
    android:id="@+id/edt1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    /> 
<ListView 
    android:id="@+id/lst1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    >  
</ListView> 
당신이 dialog.You 설정할 수 intent.It가 표시됩니다 사용하여 시작 xml.Simply에서 대화로 활동의 테마를 설정하지 않는 이유

0

아마도 dialog.setContentView(R.layout.yourlayout)을 사용하기 쉬울 것 자신의 레이아웃을 사용하십시오.

+0

고맙습니다하지만 매개 변수를 주조하는 동안 오류가 있습니다 –

+0

무엇이 오류입니까? –

+0

LayoutParams를 형 변환 할 수 없습니다. 내 질문을 다시 보아라. –

0

상대 레이아웃을 사용할 수 있습니다. 같은

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

더 많은 정보를 원하시면 다음

params.addRule(RelativeLayout.BELOW, id); 

Programatically add view one below other in relative layout

// EDIT

RelativeLayout layout = new RelativeLayout(this); 
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
layout.setLayoutParams(layoutParams); 

RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
RelativeLayout.LayoutParams params2 = new 
RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

params1.addRule(RelativeLayout.ABOVE, LISTVIEW_ID); 
params2.addRule(RelativeLayout.BELOW, EDITTEXT_INPUT_ID); 

layout.addView(EDITTEXTID, params1); 
layout.addView(LISTVIEW, params2); 

지금 당신은 당신의 이 레이아웃을 설정해야 DIALOG 그리고 작동해야합니다

+0

나는 이것을 추가하지만 작동하지 않는다.) : –

+0

ive 질문 편집 ... 지금 시도해라. –

관련 문제