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 内工作 的相关文章

  • 单击弹出菜单时为什么导航栏出现在全屏应用程序中

    我有一个全屏应用程序 MainActivity java public class MainActivity extends AppCompatActivity TargetApi Build VERSION CODES KITKAT pr
  • TypedArray 的 getResourceId 方法

    我正在阅读有关的文档获取资源Id https developer android com reference android content res TypedArray html getResourceId int 20int 方法 它说
  • Android 中用虚拟键盘捕捉按键按下的情况?

    使用物理键盘 您可以使用按键监听器 http developer android com reference android text method KeyListener html 就像是 myEditText setOnKeyListe
  • 使用库来维护免费/付费的应用程序版本

    维护免费 付费应用程序版本的共识似乎是使用库 并从每个活动中设置一个标志 以从代码库中获取不同的功能 这有多安全 据我了解 一个人可以root他们的手机 获取APK 并且可以对其进行反编译 即使代码被混淆 也不难看出该应用程序是带有标志的包
  • 使用 android AudioTrack 在左或右扬声器中播放声音

    我正在应用程序中的 AudioTrack 的帮助下播放声音 但我想在特定扬声器 耳朵中播放声音 即左扬声器或右扬声器或两个扬声器 以下代码是我用来播放声音的 private AudioTrack generateTone double fr
  • 毕加索动画加载图像

    我有以下代码在毕加索中加载图像 使用可绘制的占位符在图像下载时显示 不过 我想要的是一个动画旋转进度条样式的旋转器 它可以在图像加载时不断地旋转 就像我在大多数专业应用程序中看到的那样 毕加索似乎不支持这一点 只支持静态图像可绘制 有没有办
  • Firestore - RecycleView - 图像持有者

    我不知道如何编写图像的支架 我已经设置了 2 个文本 但我不知道图像的支架应该是什么样子 你能帮我告诉我图像的文字应该是什么样子才能正确显示吗 holder artistImage setImageResource model getArt
  • Youtube 退出全屏模式 TextView 可见性问题

    我正在全屏模式下播放视频 当我单击后退按钮时 我可以退出全屏模式 但无法显示我在全屏情况下隐藏的 TextView 要在全屏模式下隐藏 textView 我使用以下代码 Override public void onInitializati
  • 如何从 Retrofit2 获取字符串响应?

    我正在做 android 正在寻找一种方法来执行超级基本的 http GET POST 请求 我不断收到错误 java lang IllegalArgumentException Unable to create converter for
  • 如何在android中设置多个闹钟,在这种情况下最后一个闹钟会覆盖以前的闹钟

    我正在开发一个Android应用程序 用户可以在其中设置提醒时间 但我在以下代码中遇到一个问题 即最后一个警报会覆盖之前的所有警报 MainActivity java public void setreminders DatabaseHan
  • JavaDoc 在 Android 项目中不起作用

    我在 Ubuntu 10 04 上使用 Eclipse 3 5 2 进行 Android 开发 我安装了 来自 Ubuntu 存储库的 Sun JDK Eclipse 3 5 2 经典 来自 eclipse org 解压到 opt ecli
  • Android Studio IDE 上的“文本/设计”选项卡缺少新的 Android 项目

    如何在创建新项目期间自动创建的 Activity main xml 文件的 src main res layout 文件夹中启用文本 设计选项卡 如果我右键单击并在所述文件夹上创建 xml 文件 则设计 文本选项卡存在 有什么建议吗 谢谢
  • Android 从命令行停止模拟器

    这个问题与如何通过命令行关闭Android模拟器 https stackoverflow com questions 5912403 how to shut down android emulator via cmd 但是 在尝试第一个答案
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 在Android Studio中更改项目主题?

    我使用浅色主题创建了一些项目 现在我想将其更改为深色 但我不知道该怎么做 顺便说一句 我不是问如何在代码中做到这一点 只是问如何更改项目的默认主题 在 AndroidManifest xml 的 application 标签下 您可以设置您
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • 在 Honeycomb Android 3.0 中显示 Action Bar 菜单项的图标

    我正在使用 Honeycomb android 3 0 开发 Android 应用程序 我正在尝试在 Action Bar 中显示菜单 菜单有一个图标和标题 当我们单击菜单项时 它会以下拉列表的形式显示其项目 它是下拉列表中带有项目名称但不
  • Android 自定义警报对话框中的 OnClickListener

    我是一个自学成才的初学者 感谢耐心 谢谢 在 Eclipse 中 我使用自己的 xml 文件 custom dialog 创建了一个自定义警报对话框 称为 usernamealert 如果用户尚未输入用户名 即 username lengt
  • Android:解析 XML 数据的最佳解析器 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在开发一个应用程序 其中我第一次要解析来自远程服务器的 xml 文件中的数据 但我无法选择哪个解析器是有效的或最适合解析的 因为我知道主要有
  • 当ScrollView滚动到底部时加载更多数据

    我有一个带有动态加载内容的滚动视图 有时可能会有很多内容 所以我想在用户滚动到底部时加载更多内容 我搜索了合适的方法 发现了两种 onScrollChanged and getScrollY 但我不知道如何将它用于我的目的 请给我一些建议

随机推荐

  • 无法在 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