gpt4 book ai didi

android - 使用 setMultiChoiceItems 的自定义对话框

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:28:54 26 4
gpt4 key购买 nike

我想创建一种用户可以选择选项的方式,如下图所示

enter image description here

现在正在做以下事情

public static class CategoriesDialogFragment extends SherlockDialogFragment {

public static CategoriesDialogFragment newInstance(int title) {
CategoriesDialogFragment frag = new CategoriesDialogFragment();
Bundle args = new Bundle();
args.putInt("title", title);
frag.setArguments(args);
return frag;
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
int title = getArguments().getInt("title");

return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.alert_dialog_icon)
.setTitle(title)
.setMultiChoiceItems(_categories, _selections,
new DialogSelectionClickHandler())
.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
((MainActivity) getActivity())
.doPositiveClick();
}
}).create();

/*
* .setNegativeButton(R.string.alert_dialog_cancel, new
* DialogInterface.OnClickListener() { public void
* onClick(DialogInterface dialog, int whichButton) {
* ((MainActivity) getActivity()) .doNegativeClick(); } })
*/
}

public class DialogSelectionClickHandler implements
DialogInterface.OnMultiChoiceClickListener {
public void onClick(DialogInterface dialog, int clicked,
boolean selected) {
// Log.i("ME", _options[clicked] + " selected: " + selected);
}
}

}

但我想像图像一样添加所有选项。所以我想我将不得不构建一个自定义对话框。我是否仍可以扩展 native setMultiChoiceItems,以便减少我对代码的处理。

最佳答案

您可能会使用 setCustomTitle() AlertDialog.Builder 类的方法并构建您自己的标题,其中包含标题文本以及all CheckBox,如下所示:

new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.alert_dialog_icon)
.setTitle(title)
.setCustomTitle(getLayoutInflater().inflate(R.layout.custom_title, null));

R.layout.custom_title 是:

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

<TextView
android:id="@+id/textView1"
style="?android:attr/textAppearanceLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Dialog title"
android:textColor="#ffffff" />

<TextView
android:id="@+id/all"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="All"
android:textColor="#ffffff" />

<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

</LinearLayout>

应该进行其他样式调整以使其看起来更好。但是看到整个对话框布局,您可能希望使用自定义的 Dialog 类,setMultiChoice() 方法将不可用(但最终它将可用易于复制)。

关于android - 使用 setMultiChoiceItems 的自定义对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13858974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com