【问题标题】:startActivity not working启动活动不工作
【发布时间】:2014-07-17 15:46:55
【问题描述】:
        public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
        //Toast.makeText(getApplicationContext(), "Position of selected item is: "+   position, Toast.LENGTH_LONG).show();

        if ("Abiding in Christ".equals(categories[position]))
                {startActivity(AbidingInChrist.class);}
        else if ("Abundant Living".equals(categories[position]))
                {startActivity(AbundantLiving.class);}
        else if ("Access to God".equals(categories[position]))
                {startActivity(AccessToGod.class);}
        else if ("Adoration of God".equals(categories[position]))
                {startActivity(AdorationOfGod.class);}
        else if ("Amazing Grace".equals(categories[position]))
                {startActivity(AmazingGrace.class);}

所有的 startActivity 都带有红色下划线,并希望我更改某些内容或创建同名的方法。我确实将所有活动添加到清单中,但其中一些没有工作:

  <activity android:name=".AbidingInChrist"</activity>
    <activity android:name=".AbundantLiving</activity>
    <activity android:name=".AccessToGod</activity>
    <activity android:name=".AdorationOfGod</activity>
    <activity android:name=".AmazingGrace</activity>
    <activity android:name=".AnsweredPrayer</activity>
    <activity android:name=".Atonement</activity>
    <activity android:name=".Attitudes</activity>
    <activity android:name=".Belief</activity>
    <activity android:name=".Blessing</activity>
    <activity android:name=".BloodOfJesus</activity>
    <activity android:name=".Boldness</activity>
    <activity android:name=".Brokenness</activity>
    <activity android:name=".Calling</activity>
    <activity android:name=".Comfort</activity>
    <activity android:name=".Commitment</activity>

这里很难说,但是其他的都用红色表示它缺少 android 命名空间前缀。

感谢你们!

【问题讨论】:

  • 好吧,首先,如果您从清单中复制了&lt;activity&gt; 列表,您应该在其中添加关闭"&gt;
  • 如果这真的是你的清单,我很惊讶你的应用程序甚至可以编译......
  • 您的 &lt;activity&gt; 标签格式错误。它们都应该是这样的:&lt;activity android:name=".AbidingInChrist"&gt;&lt;/activity&gt;&lt;activity android:name=".AbidingInChrist" /&gt;
  • 谢谢,我不知道为什么我没有看到。

标签: android start-activity


【解决方案1】:

在您的代码中尝试使用意图来启动活动:

   Intent i = new Intent(ACTUALACTIVITY.this, OTHERACTIVITY.class);
                startActivity(i);

并在您的清单中放置您的活动完整地址(package.activity),如下所示:

<application>
(...)
            <activity
                android:name="packagename.YOURACTIVITY">
            </activity>
</application>

【讨论】:

    【解决方案2】:

    尝试创建 Intent 并启动 Activity 传递此意图,如

    // Create intent to start new Activity
    Intent intent = new Intent(context, YourActivity.class);
    startActivity(intent);
    

    【讨论】:

    • 是的,我明白了,但是如何将所选位置作为要启动的类(活动)传递给它?
    • sunladyjoy,您可以使用 Intent 类 putExtra() 的重载方法,在其中使用 KEY-VALUE 对传递数据。然后,您根据自己的意图启动的其他活动可以检索传递的值,使用带有 get(SOMETHING)Extra() 的方法并根据需要使用您的值
    【解决方案3】:

    startActivity 方法将Intent 作为参数。哟正试图通过一门课,这就是为什么你得到“红色下划线”

    试试这个:

        if ("Abiding in Christ".equals(categories[position]))
                {startActivity(new Intent(this, AbidingInChrist.class));}
        else if ("Abundant Living".equals(categories[position]))
                {startActivity(new Intent(this, AbundantLiving.class));}
        else if ("Access to God".equals(categories[position]))
                {startActivity(new Intent(this, AccessToGod.class));}
        else if ("Adoration of God".equals(categories[position]))
                {startActivity(new Intent(this, AdorationOfGod.class));}
        else if ("Amazing Grace".equals(categories[position]))
                {startActivity(new Intent(this, AmazingGrace.class));}
    

    在你的清单中,不要忘记在声明活动时关闭引号

            <activity android:name=".AbidingInChrist"></activity>
            <activity android:name=".AbundantLiving"></activity>
            <activity android:name=".AccessToGod"></activity>
    

    【讨论】:

    • 不要忘记关闭开始标签。也就是说,您缺少&gt;'s。
    猜你喜欢
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2014-04-19
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多