首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将第二个屏幕的大小限制为wrap_content

将第二个屏幕的大小限制为wrap_content
EN

Stack Overflow用户
提问于 2015-06-24 15:33:40
回答 3查看 44关注 0票数 0

在一个android应用程序中,我有第二个屏幕,其中只包含一个ListView。它通过单击主屏幕中的Button显示,并在用户单击某个项目时关闭。

问题是在我的第二个屏幕上有一个相对较大的空白区域,看起来不太好。

问题是:我如何限制第二个屏幕的大小,使其看起来像DialogBox,但带有ListView

ext:ListView只是一个例子,第二个屏幕的内容可能是像Compound View一样的所有东西,它很复杂,但不会填满整个屏幕。因此,用XML而不是以编程方式实现第二个屏幕对我来说很重要。

我的第二个屏幕的XML-code:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/myListView2"
        android:layout_width="300dp"
        android:layout_height="300dp"
        >
    </ListView>
</LinearLayout>

--我尝试将第二个屏幕的layout_widthlayout_height限制为wrap_content300dp,但它们都不起作用。

谢谢你的回答!

EN

回答 3

Stack Overflow用户

发布于 2015-06-24 16:10:10

在onCLick中使用此代码

代码语言:javascript
运行
复制
AlertDialog.Builder builderSingle = new AlertDialog.Builder(
                DialogActivity.this);
        builderSingle.setIcon(R.drawable.ic_launcher);
        builderSingle.setTitle("Select One Name:-");
        final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
                DialogActivity.this,
                android.R.layout.select_dialog_singlechoice);
        arrayAdapter.add("Hardik");
        arrayAdapter.add("Archit");
        arrayAdapter.add("Jignesh");
        arrayAdapter.add("Umang");
        arrayAdapter.add("Gatti");
        builderSingle.setNegativeButton("cancel",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });

        builderSingle.setAdapter(arrayAdapter,
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String strName = arrayAdapter.getItem(which);
                        AlertDialog.Builder builderInner = new AlertDialog.Builder(
                                DialogActivity.this);
                        builderInner.setMessage(strName);
                        builderInner.setTitle("Your Selected Item is");
                        builderInner.setPositiveButton("Ok",
                                new DialogInterface.OnClickListener() {

                                    @Override
                                    public void onClick(
                                            DialogInterface dialog,
                                            int which) {
                                        dialog.dismiss();
                                    }
                                });
                        builderInner.show();
                    }
                });
        builderSingle.show();

这将在对话框中显示列表视图

有关更多信息,请单击here

票数 0
EN

Stack Overflow用户

发布于 2015-06-30 21:29:22

我终于找到答案了!

唯一要做的就是在AndroidManifest中将android.theme设置为Dialog,如下所示:

代码语言:javascript
运行
复制
    <activity android:name=".SecondActivity"
              android:label="secondAct"
              android:theme="@android:style/Theme.Holo.Dialog"

AlertDialog.Builder相比,这种方法的优点是可以定制二次布局,而不受视图类型的限制。并且辅助布局不应该以编程方式创建。

票数 0
EN

Stack Overflow用户

发布于 2015-06-24 15:53:34

您的listview No content try适配器

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31020447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档