Android:DatePicker 无法在 Activity 内工作

2024-01-07

在我的应用程序中,我有一个选项卡栏,我使用 ActivityGroup 将内容加载到每个选项卡中,如下所示。

public class FirstGroup extends ActivityGroup {

        // Keep this in a static variable to make it accessible for all the nesten activities, lets them manipulate the view
 public static FirstGroup group;

        // Need to keep track of the history if you want the back-button to work properly, don't use this if your activities requires a lot of memory.
 private ArrayList<View> history;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       this.history = new ArrayList<View>();
       group = this;

              // Start the root activity withing the group and get its view
       View view = getLocalActivityManager().startActivity("FlightsActivity", new
                   Intent(this,FlightsActivity.class)
                   .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                                      .getDecorView();

              // Replace the view of this ActivityGroup
       replaceView(view);

    }

 public void replaceView(View v) {
                // Adds the old one to history
  history.add(v);
                // Changes this Groups View to the new View.
  setContentView(v);
 }

我在 FlightsActivity 活动类中有一个图像,在图像的 onClick 事件上我需要显示一个日期选择器。我已经为此编写了代码,当我直接指定 FlightsActivity 作为选项卡的内容时,它工作正常通过 ActivityGroup 加载它。但是现在我收到错误

10-20 14:11:16.302: ERROR/AndroidRuntime(294): FATAL EXCEPTION: main
10-20 14:11:16.302: ERROR/AndroidRuntime(294): android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@43e497e0 is not valid; is your activity running?
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.view.ViewRoot.setView(ViewRoot.java:505)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.view.Window$LocalWindowManager.addView(Window.java:424)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.app.Dialog.show(Dialog.java:241)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.app.DatePickerDialog.show(DatePickerDialog.java:129)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.app.Activity.showDialog(Activity.java:2556)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.app.Activity.showDialog(Activity.java:2514)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at tabviewapp.com.FlightsActivity$10.onClick(FlightsActivity.java:166)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.view.View.performClick(View.java:2408)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.view.View$PerformClick.run(View.java:8816)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.os.Handler.handleCallback(Handler.java:587)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.os.Looper.loop(Looper.java:123)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at android.app.ActivityThread.main(ActivityThread.java:4627)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at java.lang.reflect.Method.invokeNative(Native Method)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at java.lang.reflect.Method.invoke(Method.java:521)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-20 14:11:16.302: ERROR/AndroidRuntime(294):     at dalvik.system.NativeStart.main(Native Method)

下面是我实现日期选择器的代码:

mPickDate = (ImageView) findViewById(R.id.pickDate);
  mPickDate.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
             showDialog(DATE_DIALOG_ID);
            }
        });

@Override
 protected Dialog onCreateDialog(int id) {
     switch (id) {
     case DATE_DIALOG_ID:
         return new DatePickerDialog(this,
                     mDateSetListener,
                     mYear, mMonth, mDay);
     case DATE_DIALOG_ID_RETURN:
         return new DatePickerDialog(this,
           mDateSetListenerreturn,
                     mYear, mMonth, mDay);     
     }
     return null;
 }

 // updates the date in the TextView
    private void updateDisplay(TextView mDateDisplay) {
        mDateDisplay.setText(
            new StringBuilder()
                    // Month is 0 based so add 1
                   .append(mDay).append("-")
                   .append(mMonth + 1).append("-")
                   .append(mYear).append("")


                    );
    }
    private DatePickerDialog.OnDateSetListener mDateSetListener =
        new DatePickerDialog.OnDateSetListener() {

            public void onDateSet(DatePicker view, int year, 
                                  int monthOfYear, int dayOfMonth) {
                mYear = year;
                mMonth = monthOfYear;
                mDay = dayOfMonth;
                updateDisplay(mDateDisplay);
            }
        };

        private DatePickerDialog.OnDateSetListener mDateSetListenerreturn =
            new DatePickerDialog.OnDateSetListener() {

                public void onDateSet(DatePicker view, int year, 
                                      int monthOfYear, int dayOfMonth) {
                    mYear = year;
                    mMonth = monthOfYear;
                    mDay = dayOfMonth;
                    updateDisplay(mDateDisplayreturn);
                }
            };

Try:

switch (id) {
    case DATE_DIALOG_ID:
        return new DatePickerDialog(getParent(),
                     mDateSetListener,
                     mYear, mMonth, mDay);     
    case DATE_DIALOG_ID_RETURN:
         return new DatePickerDialog(getParent(),
           mDateSetListenerreturn,
                     mYear, mMonth, mDay);  
}

this不是主要的context在这种情况下。

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

Android:DatePicker 无法在 Activity 内工作 的相关文章

  • 如何清除所有WebView存储的信息?

    我有一个 Android 浏览器 我可以选择清除缓存 存储 cookie 等 代码如下所示 webView clearCache true webView clearFormData webView clearHistory webView
  • 如何快速自动发送FCM或APNS消息?

    我正在开发一项后端服务 通过 FCM 或 APNS 向移动应用程序发送推送通知 我想创建一个可以在一分钟内运行的自动化测试 并验证服务器是否可以成功发送通知 请注意 我不一定需要检查通知是否已送达 只需检查 FCM 或 APNS 是否已成功
  • 类型容器“Android 依赖项”引用不存在的库 android-support-v7-appcompat/bin/android-support-v7-appcompat.jar

    我在尝试在我的项目中使用 Action Bar Compat 支持库时遇到了某种错误 我不知道出了什么问题 因为我已按照此链接中的说明进行操作 gt http developer android com tools support libr
  • android中向sqlite中插入大量数据

    目前 我必须一次向我的 Android 中插入超过 100 亿条数据 然而 内存不足的问题会使程序崩溃 sqlite 插入测试非常简单 只需使用 for 循环生成 sql 插入命令并通过 开始 和 提交 进行包装 private Array
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • 如何以编程方式检查 AndroidManifest.xml 中是否声明了服务?

    我正在编写一个库 该库提供了一项服务 其他开发人员可以通过将其包含在他们的项目中来使用该服务 因此 我无法控制 AndroidManifest xml 我在文档中解释了要做什么 但一个常见的问题是人们忽略了将适当的 标记添加到其清单中 或者
  • Android Activity 生命周期函数基础知识

    我正在测试这段代码 它显示活动所处的状态 public class Activity101Activity extends Activity String tag Lifecycle Called when the activity is
  • 无法访问 com.google.android.gms.internal.zzbfm 的 zzbfm 类文件未找到

    我正在将我的 Android 应用程序项目从GCM to FCM 为此 我使用 Android Studio 中的 Firebase 助手工具 并遵循 Google 开发人员指南中的说明 一切都很顺利 并将我的应用程序代码更改为FCM根据助
  • 尝试将相机切换回前面但出现异常

    尝试将相机切换回前面 但出现异常 找不到 问题请检查并帮助 error 01 27 11 49 00 376 E AndroidRuntime 30767 java lang RuntimeException Unable to start
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 发布android后更改应用内购买项目的价格

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

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • Android Studio - Windows 7 上的 Android SDK 问题

    我对 Google i o 2013 上发布的最新开发工具 Android Studio 有疑问 我已经成功安装了该程序并且能够正常启动 我可以导入现有项目并对其进行编辑 但是 当我尝试单击 SDK 管理器图标或 AVD 管理器图标时 或者
  • 增加活动的屏幕亮度

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

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • Crashlytics 出现 Android Studio 构建错误

    我正在尝试将 CrashLytics 与 Android Studio 和 gradle 一起使用 但出现一个令人困惑的错误 java lang NoSuchMethodError 我的 build gradle 是 buildscript

随机推荐

  • 无法在 InstallShield 2012 限量版中创建非广告快捷方式

    我已经为 Visual Studio 2012 解决方案创建了 InstallShield 2012 Limited Edition 安装程序项目 我已配置为创建 发送到 快捷方式 但是 它会创建一个广告快捷方式 因此 Windows 实际
  • 为什么 Ansible 不读取相对路径中的模板?

    我正在使用 Ansible 但模板路径存在一些问题 这是我执行时的错误输出 ansible playbook i hosts site yml PLAY users GATHERING FACTS ok 10 0 3 240 TASK te
  • 在 Python 中使用字典代替 Case/Switch 语句

    我想随机化一个初始化为完整的魔方 所有颜色都在正确的侧面 我有旋转立方体的移动函数 我想连续随机选择 50 个函数来正确随机化它 我做这个项目是为了更多地了解 Python 因为我主要使用 C 而且我发现 Python 没有 case sw
  • 如何在页面加载之前提交ajax请求

    我想通过ajax请求检查用户的登录状态 根据用户是否登录 我想显示用户名 密码输入或用户名 目前 请求在 body onload 上发送 并显示 prgoress 指示器 直到响应到达 有没有更好的办法 我们假设需求规定不应有直接的服务器端
  • 如何修复汇编语言中的凯撒密码实现以读取多位密钥?

    我的代码实现了凯撒密码 它询问用户输入文件的名称 其中包含我想要加密 解密的字符串 输出文件的名称和密钥 密码 我的问题是它只读取密钥的第一个数字 如果我给它一个两位数的数字作为密钥 那么它只读取第一个 例如 14 15 它只读取 1 我该
  • React Hooks - 将引用传递给子级以使用 ScrollIntoView

    我有两个组件 一位父母和一个孩子 在父组件内我有一个按钮 如果用户单击该按钮 我想对子组件内的另一个按钮执行 ScrollIntoView 我想我想定义对子按钮 a 的引用 以便我在父按钮 onClick 中可以执行以下操作 ref scr
  • 如何使用 json 将图像发送到 iPhone 中的服务器?

    我正在使用 json 与服务器通信 我想发布并从服务器获取图像 如何将json格式的图像转换为发送它 以及当我们获取json格式的图像并将其转换回图像时 请参阅HTML 规范的相关部分 http www w3 org TR html401
  • kubernetes 私有注册表不起作用

    我按照以下链接配置 kubernetes 私有注册表 https github com kubernetes kubernetes tree master cluster addons registry https github com k
  • 错误:与“cc”链接失败:退出代码:1

    我有一个single rs 文件 当我编译它时rustc test1 rs 我收到错误 error linking with cc failed exit code 1 note cc m64 L usr local Cellar rust
  • 如何从页面加载时默认出现的选定文本中删除文本选择?

    当我们刷新或重新加载页面时 单击下面的图像部分 您可以在圆圈中间看到选定的文本 讨论目标和关注点 现金流量分析 税务分析 等等 例子 http ivyfa advisorproducts com financial planning pro
  • 在 where 子句中使用函数的 Oracle 性能

    在存储过程 有一个名为 paramDate 的日期参数 中 我有一个像这样的查询 select id name from customer where period aded to char paramDate mm yyyy Oracle
  • fetchedResultsContainer 核心数据中出现严重应用程序错误

    尝试添加记录时出现以下错误 严重的应用程序错误 例外 在核心数据更改期间被捕获 加工 这通常是一个错误 在观察者之内 NSManagedObjectContextObjectsDidChangeNotification 索引 0 对于 us
  • Android 应用程序中的音频声音太低

    我录制了一些音频文件以在我的应用程序中使用 大约有 50 个 所以我不想再次录制所有音频文件 我最近使用 SoundPool 在真实设备而不是模拟器上播放音频文件 你几乎听不到它们 在模拟器上 我的电脑音量设置为最大 设备音量设置为最大 我
  • 如何在Flexbox中每行显示3个项目?

    我有一个列表 我想显示我的li水平元素 每行 3 个 我一直在努力得到我想要的东西 但没有运气 有解决办法吗 div class serv ul foreach App Http Controllers HomeController get
  • 是否有 Linq 方法可以将单个项目添加到 IEnumerable 中?

    我正在尝试做这样的事情 image Layers 它返回一个IEnumerable对于除Parent层 但在某些情况下 我只想这样做 image Layers With image ParentLayer 因为与通常使用的数百次相比 它只在
  • Git pull:错误:条目 foo 未更新。无法合并

    我正在尝试从远程分支更新我的存储库 并且当我执行 git pull 时不断收到此错误 我没有进行任何本地更改 即使做了 我也不需要保留它们 我试过了 git reset hard 我遇到了同样的问题 似乎唯一有效的方法是删除有问题的文件并再
  • PDO 获取多个插入 ID

    使用 PDO 运行以下查询 实际上 我使用准备好的语句 但有同样的问题 INSERT INTO MyTable MyField VALUES Row1 Row2 如何获取与以下内容相关的记录的 IDRow1 and Row2 db gt l
  • 有 C++ 的在线名称解析器吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我收到了一个相当长且令人困惑的链接错误 如果我可以将其粘贴到某个网站上的某个文本框中并为我提供未损坏的
  • Python:通过向上舍入将列表中的 # 个值分配给 bin

    我想要一个可以接受一系列和一组垃圾箱的函数 并且基本上四舍五入到最近的垃圾箱 例如 my series 1 1 5 2 2 3 2 6 3 def my function my series bins my function my seri
  • Android:DatePicker 无法在 Activity 内工作

    在我的应用程序中 我有一个选项卡栏 我使用 ActivityGroup 将内容加载到每个选项卡中 如下所示 public class FirstGroup extends ActivityGroup Keep this in a stati