如何将自定义列表视图设置到对话框中

2023-12-12

我正在开发一个应用程序,它从网络服务中获取一些数据并显示在列表视图中。我已经实现了一个由 BaseAdapter 扩展的自定义适配器。在里面getView()我也给原料充气的方法..这些工作得很好。

我的问题是我已经实现了代码来在用户单击列表项时显示一个对话框,但现在我想显示另一个对话框,其中包含一个自定义列表(当单击“是”按钮时)。我还想在该列表视图中显示一些数据。 [我有一个 ArrayList 填充了我想要的数据]。我正在我的适配器类中编写代码。谁能给我一些想法如何去做?

这是我的代码:

public class NewsRowAdapter extends BaseAdapter  {


private Context mContext;
private Activity activity;
private static LayoutInflater inflater=null;
private ArrayList<HashMap<String, String>> data;
int resource;
    //String response;
    //Context context;
    //Initialize adapter
    public NewsRowAdapter(Context ctx,Activity act, int resource,ArrayList<HashMap<String, String>> d) {
        super();
        this.resource=resource;
        this.data = d;
        this.activity = act;
        this.mContext = ctx;
        inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    }


    public void dialogshow(final String Date,final String Start,final String End){

        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity);
        alertDialogBuilder.setTitle("Confirm your Action!");

        // set dialog message
        alertDialogBuilder
            .setMessage("Click yes to exit!")
            .setCancelable(false)
            .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                    // if this button is clicked, close
                    // current activity
                    //MainActivity.this.finish();

                //  Toast.makeText(mContext, "Yes clicked", Toast.LENGTH_LONG).show();

                    //check similer records

                //  ShortList sh = new ShortList();

                //  ArrayList<HashMap<String, String>> duplicateList; 
                //  duplicateList=sh.getDuplicated(Date, Start, End);


                    //if duplicates > 1 then show the popup list
            //      if(duplicateList.size()>1){
                    AlertDialog.Builder alertDialogBuilder2 = new AlertDialog.Builder(activity);

                    LayoutInflater infl = activity.getLayoutInflater();




                    //View vi = infl.inflate(id, root)





                    alertDialogBuilder2.setView(infl.inflate(R.layout.dialog_row, null))
                    .setPositiveButton("Accept", new DialogInterface.OnClickListener() {

                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    // TODO Auto-generated method stub
                                    Toast.makeText(mContext, "Accepted", Toast.LENGTH_LONG).show();
                                }
                            })
                            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    // TODO Auto-generated method stub
                                    dialog.dismiss();
                                }
                            });

                    alertDialogBuilder2.show();


                //  }



                }
              })
              .setNegativeButton("No",new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int id) {
                        // if this button is clicked, just close
                        // the dialog box and do nothing
                        dialog.cancel();
                    }
                });
        alertDialogBuilder.show();

    }



@Override
public View getView(final int position, View convertView, final ViewGroup parent) {


    View vi = convertView;
    if(convertView==null)
        vi = inflater.inflate(R.layout.row,null);


        final TextView firstname = (TextView) vi.findViewById(R.id.fname);
        final TextView lastname = (TextView) vi.findViewById(R.id.lname);
        final TextView startTime = (TextView) vi.findViewById(R.id.stime);
        final TextView endTime = (TextView) vi.findViewById(R.id.etime);
        final TextView date = (TextView) vi.findViewById(R.id.blank);
        final ImageView img = (ImageView) vi.findViewById(R.id.list_image);


        HashMap<String, String> song = new HashMap<String, String>();
        song =data.get(position);

        firstname.setText(song.get(MainActivity.TAG_PROP_FNAME));
        lastname.setText(song.get(MainActivity.TAG_PROP_LNAME));
        startTime.setText(song.get(MainActivity.TAG_STIME));
        endTime.setText(song.get(MainActivity.TAG_ETIME));
        date.setText(song.get(MainActivity.TAG_DATE));
        //imageLoader.DisplayImage(song.get(CustomizedListView.KEY_THUMB_URL), img);

        Button accept = (Button) vi.findViewById(R.id.button1);
        accept.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                final int x = (int) getItemId(position);
                /*Intent zoom=new Intent(mContext, Profile.class);
                zoom.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
                zoom.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                mContext.startActivity(zoom);*/

                // get the intent from the hashmap check if there is similar date and time.
                //then store them in a list or array.

                String getDate = (String) date.getText();
                String getStartTime = startTime.getText().toString();
                String getEndTime = endTime.getText().toString();

                dialogshow(getDate,getStartTime,getEndTime);
            }
    });


        vi.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                String getFname = firstname.getText().toString();
                Toast.makeText(parent.getContext(), "view clicked: "+getFname , Toast.LENGTH_SHORT).show();

                //get the id of the view
                //check the id of the request
                //call the web service acording to the id

                Intent zoom=new Intent(parent.getContext(), Profile.class);   
                parent.getContext().startActivity(zoom);



            }
        });

        return vi;


}

您走在正确的轨道上,这是我用来动态显示其中包含项目列表的对话框。

作为参考,这里提出了类似的问题:Android 自定义列表对话框

    //String[] list_data; Preloaded with a String array

    final CharSequence[] items = new CharSequence[list_data.length];

            for (int i = 0; i < list_data.length; i++) {
               items[i] = list_data[i];
            }

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Select the data you want");
    builder.setItems(items, new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            //Get the id of the item
            diag_callback();

        }

    });

    AlertDialog alert = builder.create();
    alert.show();

}

public void diag_callback() {
    //Do someting when the user has made his selection
}

希望这能解决您的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将自定义列表视图设置到对话框中 的相关文章

  • 如何快速自动发送FCM或APNS消息?

    我正在开发一项后端服务 通过 FCM 或 APNS 向移动应用程序发送推送通知 我想创建一个可以在一分钟内运行的自动化测试 并验证服务器是否可以成功发送通知 请注意 我不一定需要检查通知是否已送达 只需检查 FCM 或 APNS 是否已成功
  • 使用workmanager时Firestore脱机持久性错误

    我正在使用一个WorkManger定期从我的中检索信息Firestore当应用程序处于后台和前台时的数据库 此信息用于根据状态更新 UI 因此不同的状态会添加或删除 UI 的不同部分 第一次运行时效果很好 但是 一旦应用程序处于后台并且Wo
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • 无法获取log.d或输出Robolectrict + gradle

    有没有人能够将 System out 或 Log d 跟踪从 robolectric 测试输出到 gradle 控制台 我在用Robolectric Gradle 测试插件 https github com robolectric robo
  • 如何以编程方式检查 AndroidManifest.xml 中是否声明了服务?

    我正在编写一个库 该库提供了一项服务 其他开发人员可以通过将其包含在他们的项目中来使用该服务 因此 我无法控制 AndroidManifest xml 我在文档中解释了要做什么 但一个常见的问题是人们忽略了将适当的 标记添加到其清单中 或者
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 是否有 ADB 命令来检查媒体是否正在播放

    我想使用 ADB 命令检查根植于终端的外部设备中是否正在播放音频 视频 我无法找到任何 ADB 命令 如果有 我尝试过 adb shell dumpsys media player 我想要一个命令来指定视频是否正在运行 您可以使用以下命令查
  • 发布android后更改应用内购买项目的价格

    在 Google Play 上发布后 是否可以更改应用内购买商品的价格 我假设该应用程序也已发布 完整的在线文档位于http developer android com http developer android com也http sup
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • 错误:在根项目“projectName”中找不到项目“app”

    我有一个在 Eclipse 中开发的旧应用程序 现在尝试将其迁移到 Android Studio 我更新了库并遵循了基本步骤 现在 我收到此错误 Error Project app not found in root project pro
  • Android Studio - Windows 7 上的 Android SDK 问题

    我对 Google i o 2013 上发布的最新开发工具 Android Studio 有疑问 我已经成功安装了该程序并且能够正常启动 我可以导入现有项目并对其进行编辑 但是 当我尝试单击 SDK 管理器图标或 AVD 管理器图标时 或者
  • 我的设备突然没有显示在“Android 设备选择器”中

    我正在使用我的三星 Galaxy3 设备来测试过去两个月的应用程序 它运行良好 但从今天早上开始 当我将设备连接到系统时 它突然没有显示在 Android 设备选择器 窗口中 我检查过 USB 调试模式仅在我的设备中处于选中状态 谁能猜出问
  • Android向menuItem添加子菜单,addSubMenu()在哪里?

    我想根据我的参数以编程方式将 OptionsMenu 内的子菜单添加到 menuItem 中 我检查了android sdk中的 MenuItem 没有addSubMenu 方法 尽管你可以找到 hasSubMenu 和 getSubMen
  • 增加活动的屏幕亮度

    显然 Android 操作系统中至少有三种不同的技术可以改变屏幕亮度 其中两个在纸杯蛋糕之后不再起作用 而第三个被接受的技术显然有一个错误 我想在单视图活动开始时增加屏幕亮度 然后在活动结束时将亮度恢复为用户设置 没有按钮 没有第二个视图或
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来

随机推荐

  • 在shiny中动态添加模块

    这与使用 renderUI 创建模块无关 据我了解 使用 renderUI 您可以在 UI 函数中放置一个占位符 然后在服务器函数中编写控件 小部件 模块分为两部分 您必须使用 callModule 将一部分添加到 UI 函数 将另一部分添
  • 使用多个签名重写 C++ 虚拟方法 [重复]

    这个问题在这里已经有答案了 我有一个 C 基类 它声明一个具有两个不同签名的虚拟方法 一旦我重写派生类中的虚拟方法签名之一 编译器 g 4 6 3 和 g 4 7 就不再能够将该方法与同一派生类中的第二个签名相匹配 如果我只将 SPECIA
  • 在 CSS 网格布局中,我们是否从隐式网格线开始计算跨度?

    这个问题是关于 CSS 网格是否 跨度计数 它是否应该从隐式网格线开始 在CSS 权威指南 第 4 版 第 14 页695 据说 box4 是事情真正变得有趣的地方 它结束于第五行线 即第二条隐式网格线 它跨越了三行 然而 它仍然从与 bo
  • PHP文件在模态窗口内上传

    我已经在互联网上搜索了好几天 但没有运气 我需要一个模式窗口来上传文件并将附加值传递给脚本 当用户单击 这是问题 时 需要打开模式窗口 以下是我当前的脚本 任何帮助或指导将不胜感激
  • 不允许加载本地资源:file:///

    我的项目中名为 幻灯片 的文件夹中有一些图像 我正在尝试访问这些图像 但它给了我以下错误 Not allowed to load local resource file C xampp htdocs MyProject Slides 123
  • Xcode 4 - 如何获取 .app 文件?

    我安装了 Xcode 4 它有非常酷的功能 我使用 Xcode 4 开发了我的新应用程序 现在将其交给客户进行测试 问题是我无法在查找器中获取 app 文件 在产品类别下 当我选择 app 文件并右键单击它时 没有 在查找器中显示 选项 我
  • django-debug-toolbar 通过相对路径查找资产?

    我正在尝试让 django debug toolbar 正常工作 在遵循所有说明后 我收到以下错误 05 Sep 2012 15 33 35 GET profile edit HTTP 1 1 200 43647 05 Sep 2012 1
  • 当覆盖层打开时暂停 Flexslider

    我们目前正在开发一个利用 Flexslider 插件 最近被 Woo Themes 收购 的项目 我们在此页面上有多个弹出窗口 我们希望滑块在弹出窗口处于活动状态时暂停 并在弹出窗口关闭时恢复 暂停仅在第一轮有效 恢复滑块不起作用 下面是我
  • 带参数和数组的对象

    C 中是否有一种方法可以在对象上添加参数 并使用数组 例如 int x 1 int y 2 Object myObject x y 5 does not work 我希望我可以将参数放入对象中 同时创建 5 个这样的对象的数组 有人知道怎么
  • 将 Tidymodels 进程映射到列表/分组依据或嵌套

    我真的很喜欢 tidymodels 但我不清楚如何将该模型工作流程适合于嵌套分组之类的东西 例如 tidyr 在 mtcars 的气缸等物体上勾勒出一个简单的嵌套 然后为每个气缸拟合一个独特的线性调节模型 我正在尝试基于圆柱体之类的东西来拟
  • Vba 代码在工作簿打开后停止。没有错误

    我有一些代码旨在打开 xlsm 工作簿 从中复制一些数据并将其与代码一起粘贴到工作簿中 两个工作簿均受密码保护 代码也受密码保护 我有一些代码设置为在保存 打开和关闭之前运行 从而锁定工作簿 所以问题是 在通过 vba 打开工作簿后 代码停
  • 在 BlackBerry 中创建自定义布局

    我想在屏幕的下半部分创建一个 RichTextField 同时在屏幕的上半部分绘制自己的自定义图形 这在黑莓手机中可能吗 它尝试定义 LayoutManager 并尝试将 RichTextField 定位在屏幕底部 但 RichTextFi
  • 为什么JVM可以自行从OOM Java堆空间中恢复

    Integer data new Integer 1000000 100000 如上面的简单演示代码 我尝试在 pandora 容器 它是阿里巴巴开发的 Web 容器 如 tomcat 中申请显着的大内存并触发 OOM 但似乎此错误仅影响当
  • 如何切换“使用自动配置脚本”

    WhoIsRich 发布了一个很棒的脚本来切换自动检测设置 你能告诉我如何设置使用自动配置脚本吗 原文发布于Windows 注册表中的哪个键禁用 IE 连接参数 自动检测设置 To set reg add HKCU Software Mic
  • [::-1] 在 python 中意味着什么 - 切片?

    我有一个变量a range 0 5 我需要知道why and how a 1 这有效 我得到的答案是range 4 1 1 感谢帮助 P S 这是一个非常基本的问题 但由于这个问题是以非常结构化的方式回答的 我尝试编辑这个问题并使其更加普遍
  • 在云托管上部署 Laravel 5.1

    我在 wamp 上开发了我的 laravel 应用程序 终于搞定了 租了一台带有CPanel接口的云托管服务器 我将所有文件上传到公共 html 上并尝试访问该网站 它应该进入登录页面但不起作用 我曾经部署经典的 html 文件 这是我第一
  • 单个字符的标签样式

    我需要更改此标签中一个字符的颜色 特别是 这需要对几个部分进行更改 但对其他许多部分则不需要更改 有没有一种内联方式可以让我做到这一点 td td
  • glassfish 命名中未找到 SerialInitContextFactory

    这开始让我彻底发疯 我想使用 Maven 创建一个 Glassfish 客户端应用程序 为此 我添加了所需的 gf client 依赖项
  • 为什么在 BIOS 中禁用超线程的 Broadwell CPU 上,perf stat 不计算周期:u?

    鉴于 BIOS 中禁用超线程的 Broadwell CPU root ny4srv03 lscpu Architecture x86 64 CPU op mode s 32 bit 64 bit Address sizes 46 bits
  • 如何将自定义列表视图设置到对话框中

    我正在开发一个应用程序 它从网络服务中获取一些数据并显示在列表视图中 我已经实现了一个由 BaseAdapter 扩展的自定义适配器 在里面getView 我也给原料充气的方法 这些工作得很好 我的问题是我已经实现了代码来在用户单击列表项时