Java 是否可以在Alertdialog中创建GridView?
是否可以在警报对话框中创建GridView 现在我有一个单词搜索,我想在一个弹出对话框中显示解决方案(完成的单词搜索),这样用户就可以在他们的谜题和答案之间快速切换 我试过这样实现它Java 是否可以在Alertdialog中创建GridView?,java,android,gridview,Java,Android,Gridview,是否可以在警报对话框中创建GridView 现在我有一个单词搜索,我想在一个弹出对话框中显示解决方案(完成的单词搜索),这样用户就可以在他们的谜题和答案之间快速切换 我试过这样实现它 AlertDialog.Builder aBuilder = new AlertDialog.Builder(this); // set title aBuilder.setTitle("The solution"); GridView g = null ; final ArrayAdapte
AlertDialog.Builder aBuilder = new AlertDialog.Builder(this);
// set title
aBuilder.setTitle("The solution");
GridView g = null ;
final ArrayAdapter<String> Wordadapter = new ArrayAdapter<String>(getApplicationContext(),
R.layout.wordsstyle, WordsToFind);
g.setNumColumns(Length);
g.setAdapter(Wordadapter);
aBuilder.setView(g);
aBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int whichButton)
{
}
});
您正在调用
g.setNumColumns(Length)
,但此时g
为null
。因此,日志猫中的NullPointerException
。您需要以某种方式初始化GridView
,可能是通过GridView g=new-GridView(这个)
您正在调用g.setNumColumns(Length)
,但此时g
为null
。因此,日志猫中的NullPointerException
。您需要以某种方式初始化GridView
,可能是通过GridView g=new-GridView(这个)代码>必须是gridview?。。。因为你可以在alertdialog中添加一个项目数组,比如listview。。。看看这个:
final CharSequence[] items = {"Foo", "Bar", "Baz"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Make your selection");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
// Do something with the selection
}
});
AlertDialog alert = builder.create();
alert.show();
必须是gridview?。。。因为你可以在alertdialog中添加一个项目数组,比如listview。。。看看这个:
final CharSequence[] items = {"Foo", "Bar", "Baz"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Make your selection");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
// Do something with the selection
}
});
AlertDialog alert = builder.create();
alert.show();
您可以启动ActivityForResult,它使用DialogTheme将自己显示为对话框
看
例如:
从那里,您可以使用Activity的setResult(int)方法从网格返回所选结果
希望有帮助。您可以启动一个ActivityForResult,使用DialogTheme将自己显示为对话框
看
例如:
从那里,您可以使用Activity的setResult(int)方法从网格返回所选结果
希望能有所帮助。更好的方法是创建一个对话框并扩展包含gridview的自定义XML,从而更好地控制实际布局。
xml本身只是一种xml,与任何其他布局一样,唯一的区别是当我们膨胀它时,它只会填充对话框,而不像普通的根布局那样填充整个屏幕。
首先,我们创建对话框:
//create the dialog
final Dialog dialog = new Dialog(getBaseContext());
//remove the default title if you want to
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
//here is where we inflate our custom xml containing a gridview
dialog.setContentView(R.layout.grid_dialog);
现在我们有了对自定义xml的引用的dialog对象,假设在该xml中有一个名为“my_grid”的gridview,我们现在可以通过dialog对象引用它,如下所示:
Gridview myGrid = (Gridview) dialog.findViewById(R.id.my_grid);
现在您已经有了对gridview的引用,您可以使用gridview执行任何正常操作,例如设置自定义适配器。
对于要引用的任何其他布局对象,如textview或按钮,只需以相同的方式进行操作
如果要设置对话框的确切大小,只需设置最外层父对象的宽度和高度,对话框就会扩展到该大小。更好的方法是创建一个对话框,并扩展包含gridview的自定义XML,从而更好地控制实际布局。
xml本身只是一种xml,与任何其他布局一样,唯一的区别是当我们膨胀它时,它只会填充对话框,而不像普通的根布局那样填充整个屏幕。
首先,我们创建对话框:
//create the dialog
final Dialog dialog = new Dialog(getBaseContext());
//remove the default title if you want to
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
//here is where we inflate our custom xml containing a gridview
dialog.setContentView(R.layout.grid_dialog);
现在我们有了对自定义xml的引用的dialog对象,假设在该xml中有一个名为“my_grid”的gridview,我们现在可以通过dialog对象引用它,如下所示:
Gridview myGrid = (Gridview) dialog.findViewById(R.id.my_grid);
现在您已经有了对gridview的引用,您可以使用gridview执行任何正常操作,例如设置自定义适配器。
对于要引用的任何其他布局对象,如textview或按钮,只需以相同的方式进行操作
如果要设置对话框的确切大小,只需设置最外层父对象的宽度和高度,对话框就会扩展到该大小。简单的方法就是在活动中进行任何类型的Gridview设计。如果您想在means中将该活动显示为对话框,只需在Android清单文件中将该活动的主题设置为Android:theme=“@Android:style/theme.dialog”
像往常一样使用startActivity调用网格视图。然后它将以对话框形式打开(可能看起来像自定义对话框)。同时,在设置内容视图之前,请使用(Window.nofeatureDialog)。以避免对话框的标题
希望这对你有帮助 简单的方法就是在活动中进行任何类型的Gridview设计。如果您想在means中将该活动显示为对话框,只需在Android清单文件中将该活动的主题设置为Android:theme=“@Android:style/theme.dialog”
像往常一样使用startActivity调用网格视图。然后它将以对话框形式打开(可能看起来像自定义对话框)。同时,在设置内容视图之前,请使用(Window.nofeatureDialog)。以避免对话框的标题
希望这对你有帮助 gridview是进行文字搜索,因为这是我在实际游戏中所做的,以不同的方式进行解决似乎有点多余gridview是进行文字搜索,因为这是我在实际游戏中所做的,以不同的方式进行解决似乎有点多余