【问题标题】:android sdk. startActivity() moves prog. to background安卓sdk。 startActivity() 移动 prog。背景
【发布时间】:2012-05-15 00:12:51
【问题描述】:

我只是想在 xml 文件/布局之间进行更改。

在我的主要活动中,我有startActivityForResult(new Intent(this,playlist.class), 0);

我已将类添加到清单中,创建了包为 com.site.mainactivity 的类,超类为 android.app.Activity。

我没有在我的主要活动中“扩展播放列表”

我的 logcat 只显示“非活动 InputConnection 上的 showStatusIcon”、“InputConnection = android.view.imputmethod.BaseInputConnection@40532b90, active client = false”

当我尝试启动新的活动/开关布局时,我的主屏幕显示,但我的应用仍在后台运行。当我返回它时,应用程序会将我带回主屏幕。

我做错了什么?

谢谢

【问题讨论】:

    标签: android android-intent android-2.2-froyo android-view


    【解决方案1】:

    这听起来像是如何维护 Activity 堆栈的问题。具体来说,这是因为基于 Manifest 属性,一个 Activity 可以具有不同的属性,这些属性指定清单应如何处理 Activity,即。如果它是否包含在 Activity 堆栈中和/或这也可能包括应用程序的主入口在哪里,以及外部意图是否可以转到应用程序中的特定屏幕。

    通过这个操作很容易控制。查看 ActivityManager 以及如何检索和维护任务并分析应用程序的设计流程。您必须完全了解您希望它如何工作以完全解决您的问题。流程图将帮助您进行此诊断。

    学会正确控制流量。

    【讨论】:

    • 在我的清单中,我将新活动指定为<activity android:name = ".playlist" android:enabled = "true" android:screenOrientation = "landscape" android:theme="@android:style/Theme.NoTItleBar"></activity>
    【解决方案2】:

    如果您只想更改布局,您可以:

    1. 再次调用 setContentView
    2. 使用 singleTop 并启动​​相同的活动,但布局不同
    3. 在启动第二个 Activity 后使用 finish() 关闭第一个 Activity

    【讨论】:

    • 嗯。我使用了 setContentView,但我无法调用函数。我会尽快再试...
    • 是的,我仍然无法调用函数,甚至在调用 setcontentview 后设置文本字段的值。
    • 好的,我可以通过调用文本视图 findviewbyid 来设置文本字段,但是如何调用函数呢?这似乎没有必要再次初始化变量。
    • 如果您只是更改文本值而不是布局,那么您可以执行类似 ((TextView)this.findViewById(R.id.tv0)).setText("hi");您实际上可以以相同的方式以编程方式修改任何布局或视图。
    【解决方案3】:

    我绕过这个障碍所做的只是使用getLayoutInflater().inflate(R.layout.main, null); 作为视图,然后使用setContentView(v)

    我只需要重新初始化事件、视图等,以便程序像更改视图之前那样运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多