2013-08-08 2 views
1

나는 MainActivity라는 액티비티를 가지고있다. MainActivity 내부에는 Select라는 버튼이 있습니다. Select을 클릭하면 사용자 정의 대화 상자가 시작됩니다. 커스텀 다이얼로그는 차례대로 자식으로 listView를가집니다. listView 않고 내 사용자 지정 대화 상자를 테스트하면 잘 작동합니다. 그러나 listView를 사용하면 inflated listView는 항상 null입니다. listView를 수정하려면 어떻게해야합니까?inflating listView onClick returns null

XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@+id/item_listView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

자바

LayoutInflater inflater = getLayoutInflater(); 
    View dialoglayout = inflater.inflate(R.layout.item_linear_listview, null); 

    Dialog listHolder = 
     (new Dialog(this, R.style.CustomDialog)); 
    listHolder.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
    listHolder.setContentView(dialoglayout); 

    listHolder.getWindow().setBackgroundDrawable(new ColorDrawable(0)); 

    listHolder.show(); 


    ListView listView = (ListView) findViewById(R.id.item_listView); 
//check listView beyond here returns null 
+0

당신이 당신의 전체 .xml 파일을 게시하시기 바랍니다 수뿐만 아니라 활동/대화의 관련 부분을. –

+0

@Phil 더 많은 코드를 추가하기 위해 편집했습니다. –

+0

가능한 해결책을 찾으십시오. –

답변

2

지금은 문제를 볼 수 있습니다. 대화 상자가 아닌 대화 상자를 시작하는 활동에서 findViewById (...)를 호출하고 있습니다. 여기

올바르게 customdialog을 만드는 방법의 예입니다, 다음의 뷰 초기화 :

// custom dialog 
    final Dialog dialog = new Dialog(getApplicationContext()); 
    dialog.setContentView(R.layout.item_linear_listview); // your custom layout file 
    dialog.setTitle("Title..."); 

    // set the custom dialog components - for example the list view 
    ListView list = (ListView) dialog.findViewById(R.id.item_listView); 


    dialog.show(); 
+0

정말 고마워요. 넌 정말 대단해. 제 인생을 미소 지으십시오. –

+0

당신은 내 친구를 환영합니다 :) –