0

[OK]を設定できないので、基本的に私は、リスト項目(ボタン)のカスタムListViewコントロールのonClickを持っている私は基本的に別のリストビューを表示する必要があります]ダイアログボックスを開きたいです。私は両方のリストを確認することはできますが、問題は、私のダイアログリストビューは、ダイアログにリストを表示していません。前のリストの上にある透明なリスト。しかし、Dialog Title getDialog().setTitle("Apps List");を設定しようとすると、上記のエラーが表示されます。これは、第1位でダイアログを表示しないのですが、なぜですか?は、ダイアログの断片を用いDialogのタイトル

public class ProfileDialog extends android.support.v4.app.DialogFragment { 
    ......... 
     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

      ArrayList<String> listItemTitle = new ArrayList<String>(); 
      listItemTitle.add("Hello"); 
      listItemTitle.add("Hello1"); 
      listItemTitle.add("Hello2"); 
      listItemTitle.add("Hello3"); 
      ArrayList<String> listItemType = new ArrayList<String>(); 
      listItemType.add("Hello"); 
      listItemType.add("Hello123"); 
      listItemType.add("1234"); 
      listItemType.add("Hello6666"); 
      ArrayList<Integer> listItemId = new ArrayList<Integer>(); 
      listItemId.add(1); 
      listItemId.add(2); 
      listItemId.add(3); 
      listItemId.add(4); 
      ArrayList<Profile> ProfileArrayList = new ArrayList<>(); 

      for (int i = 0; i < listItemTitle.size(); i++) { 
       Profile Profile = new Profile(listItemTitle.get(i), listItemType.get(i), listItemId.get(i)); 
       ProfileArrayList.add(Profile); 

      } 

      View profileView = inflater.inflate(R.layout.fragment_profile_dialog, container, false); 
      ListView profileListView = (ListView) profileView.findViewById(R.id.lstvSelectedProfile); 
      getDialog().setTitle("Apps List"); 
    //  ListView profileListView = (ListView) LayoutInflater.from(context).inflate(R.layout.fragment_profile_dialog, null); 
      if(profileListView.getParent()!=null) { 
       ((ViewGroup) profileListView.getParent()).removeView(profileListView); 
      } 
       SelectedProfileListAdapter adapter = new SelectedProfileListAdapter(getActivity().getApplicationContext(), ProfileArrayList); 
       profileListView.setAdapter(adapter); 


      return profileListView; 
     } 

これは私の2番目のリストに掲載されたAdapaterです。

public class SelectedProfileListAdapter extends BaseAdapter{ 
    private LayoutInflater layoutInflater; 
    private List<Profile> selectedProfileList; 

    public SelectedProfileListAdapter(Context context, List<Profile> selectedProfileList) { 
     layoutInflater =(LayoutInflater) context.getSystemService(LAYOUT_INFLATER_SERVICE); 
     this.selectedProfileList = selectedProfileList; 
//  this.context = context; 
    } 

........... 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ProfilesListAdapter.ViewHolder ProfileListViewHolder; 
     if (convertView == null) { 
      ProfileListViewHolder = new ProfilesListAdapter.ViewHolder(); 
      convertView = layoutInflater.inflate(R.layout.adapter_profiles_list, parent, false); 
      ProfileListViewHolder.title = (TextView) convertView.findViewById(R.id.title); 
      ProfileListViewHolder.textView3 = (TextView) convertView.findViewById(R.id.textView3); 
      ProfileListViewHolder.imageButtonMore = (ImageButton) convertView.findViewById(R.id.imgButtonMore); 
      convertView.setTag(ProfileListViewHolder); 
     } else { 
      ProfileListViewHolder = (ProfilesListAdapter.ViewHolder) convertView.getTag(); 
     } 
     ProfileListViewHolder.textView3.setText(selectedProfileList.get(position).getTitle()); 
     ProfileListViewHolder.title.setText(selectedProfileList.get(position).getType()); 
     ProfileListViewHolder.imageButtonMore = (ImageButton) convertView.findViewById(R.id.imgButtonMore); 
     ProfileListViewHolder.imageButtonMore.setTag(selectedProfileList.get(position).getId()); 


     return convertView; 
    } 

} 
+1

DialogFragment onCreateView()で間違ったビューを返したと思います。あなたはリストだけである "profileListView"をretrunedしました。それを "profileView"に変更してみてください。それは助けて欲しい! –

答えて

0

あなたはonCreateDialog()メソッドを上書きして...そこにあなたのres /のstyles.xmlで

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    Dialog dialog = super.onCreateDialog(savedInstanceState); 
    dialog.setTitle("Apps List"); 
    return dialog; 
} 

EDIT

をあなたのタイトルを追加することができます。

カスタムダイアログスタイルを追加
<style name="CustomDialog" parent="@style/Theme.AppCompat.Light.Dialog"> 
    <item name="android:windowNoTitle">false</item> 
</style> 

これを次のように適用します。

ProfileDialog fragment = new ProfileDialog(); 
fragment.setStyle(DialogFragment.STYLE_NORMAL, R.style.CustomDialog); 
+0

効果がありません。それはまだ同じです –

+0

私は答えを編集しました... – rafsanahmad007

+0

答えの仲間のおかげで、それはちょっと助けましたが、問題は私のダイアログがダイアログのように見えず、ダイアログに読み込まれていてその背景が透明だということです。だから私は確信していない、ここで何が間違っている。 –