Java 是否可以在Alertdialog中创建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

是否可以在警报对话框中创建GridView

现在我有一个单词搜索,我想在一个弹出对话框中显示解决方案(完成的单词搜索),这样用户就可以在他们的谜题和答案之间快速切换

我试过这样实现它

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是进行文字搜索,因为这是我在实际游戏中所做的,以不同的方式进行解决似乎有点多余