【问题标题】:UI not responding on screen orientation -AndroidUI 在屏幕方向上没有响应 - Android
【发布时间】:2012-11-06 04:22:12
【问题描述】:

我正在使用媒体播放器开发应用程序。我用两种布局处理了屏幕方向。我使用了 onsavedInstancestate 和 onrestoreinstancesstate。在屏幕旋转时,布局会发生变化,并且媒体播放器状态会保留,但 UI 没有响应。

我已经保存并保留了媒体播放器对象的状态

   public  Object  onRetainNonConfigurationInstance() 
         {
                HashMap<String,Object> player = new HashMap<String,Object>();
                MediaPlayer instance = mp;
                mp = null;
                MediaPlayer instance1 = mp1;
                mp1 = null;
                player.put("mp", instance);
                player.put("mp1", instance1);
                return player;

          }

 if(getLastNonConfigurationInstance()!=null)
                {

                 playerhandle = (HashMap<String, Object>) getLastNonConfigurationInstance();
                 mp = (MediaPlayer)playerhandle.get("mp");
                 if (mp == null) 
                 {
                    mp = new MediaPlayer();
                 }
                 mp1 = (MediaPlayer)playerhandle.get("mp1");
                 if (mp1 == null) 
                 {
                   mp1 = new MediaPlayer();
                 }
                 }        

并且还使用 onsavedinstancestate 和 onrestoreinstancestate 保留数据。媒体播放器保留屏幕方向后的状态(音频播放时没有对屏幕方向的解释)但 UI 在方向更改后没有响应。无法解决问题.....

【问题讨论】:

  • 我已经编辑了问题..请提供建议

标签: android


【解决方案1】:

如果您在 onCreate 中将点击监听器添加到您的按钮,您需要将监听器添加到 onConfigurationChanged 中创建的新按钮对象。

您可以考虑在 XML 文件中使用 android:onClick 属性,而不是在代码中设置点击侦听器。这是避免这个问题的好方法。

要从 XML 中使用 android:onClick,请执行以下操作:

<Button
    android:id="@+id/addnote"
    android:onClick="addNoteMethod"
    ....
    />

然后在你的活动中,定义方法:

public void addNoteMethod(View view) {
    createNote();
}

android:onClick 方法的名称是完全任意的;它只需要将您的活动中的方法与正确的签名(void(View))相匹配。当点击时,该方法将被调用,其方式与为 OnClickListener 调用 onClick 方法的方式完全相同。

当使用 android:onClick 时,你不需要调用 setOnClickListener(或者甚至在 onCreate 中检索对按钮的引用,除非你需要它来做其他事情)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 2011-09-09
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2019-01-28
    相关资源
    最近更新 更多