1

是否可以显示ListFragmentDialog?或者没有办法,我应该在自己内部实现自己的ListView、空的TextView和不确定的?ProgressBarDialogFragment

4

2 回答 2

7

另外一个选项:

构建对话框片段:

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;    

public class ListDialogFragment extends DialogFragment {

    private OnListDialogItemSelect listener;
    private String title;
    private String[] list;

    public ListDialogFragment(OnListDialogItemSelect listener, String[] list, String title) {
        this.listener=listener;
        this.list=list;
        this.title=title;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        return new AlertDialog.Builder(getActivity())
                .setTitle(title)
                .setCancelable(false)
                .setItems(list, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int item) {

                        listener.onListItemSelected(list[item]);
                        getDialog().dismiss(); 
                        ListDialogFragment.this.dismiss();

                    }
                }).create();

    }

    public interface OnListDialogItemSelect{
        public void onListItemSelected(String selection);
    }

}

在您的片段活动中,如下所示:

public class YourActivity extends FragmentActivity implements OnListDialogItemSelect{

    private void showCountryFragment(){
         FragmentManager fm = getSupportFragmentManager();
         ListDialogFragment newFragment = new ListDialogFragment(this,getCountries(),"Country:");
         newFragment.show(fm, "country_picker");
    }

    @Override
    public void onListItemSelected(String selection) {
        _bt_country.setText(selection);
    }

}
于 2013-05-08T00:46:09.637 回答
1

我不太确定它是否适用于 ListFragment 但我们可以通过将主题应用于清单文件中的活动来将活动显示为对话框:

<activity android:theme="@android:style/Theme.Dialog" />

请尝试使用您的 ListFragment,并让我知道它是否有效。

谢谢你。

于 2012-09-20T16:35:07.997 回答