0

我为 Android 应用程序创建了三个活动:BaseballCardsList、BaseballCardsDetails 和 FilterBaseballCards。BaseballCardsList 是启动我的应用程序时加载的主要活动。它有一个菜单,然后显示其他两个活动之一。现在,当我只有 BaseballCardsList 和 BaseballCardsDetails 时,一切似乎都正常工作。但是当我添加 FilterBaseballCards 时,我一直遇到问题。我已经找到了一个我遗漏的问题android:layout_widthandroid:layout_height属性。我当前的问题是对 BaseballCardsDetails 或 FilterBaseballCards 的 XML 布局文件的更改会导致单击菜单以加载错误的 Activity 或根本不加载任何 Activity(应用程序仍保留在 BaseballCardsList 上)。

目前,我在 filter_cards.xml 中有以下内容:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:orientation="vertical"
>
    <TextView     
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/filter_by_label" 
    />
    <Button android:id="@+id/ok_button"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/ok_button"
    />
</LinearLayout>

这会按我的预期编译和运行。当我添加

    <Button android:id="@+id/cancel_button"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/cancel_button"
    />

在 LinearLayout 的末尾,单击菜单加载 BaseballCardDetails 加载应该在 FilterBaseballCards 中的小部件,然后单击菜单加载 FilterBaseballCards 什么也不做。

我是 Android 编程的新手,对此感到非常沮丧。我以为我从我所做的阅读中了解了一切是如何运作的,但显然不是。我不知道为什么添加 Button 小部件会导致看似无关的问题。而且我不知道如何追查真正的问题是什么。我在哪里可以解决这个问题?如果我需要发布更多代码,我会很乐意这样做。不过,我的最后一个问题以所有代码结束,所以我不想在我的新问题中用这么多代码淹没每个人。

FilterBaseballCards.java

package bbct.android;

import android.app.Activity;
import android.os.Bundle;

public class FilterBaseballCards extends Activity{
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.filter_cards);
    }
}
4

2 回答 2

2

我希望你已经在你的Manifest

    <activity android:name=".Your Claass Name">
于 2012-09-24T04:25:05.073 回答
0

以下是我对在 Android 项目的 XML 文件中更改资源和 ID 时会发生什么的推测:

aapt 生成的 R 类包含一堆static final ints. 当您编译引用这些的源文件时,该值被硬编码到生成的 .class 文件中。现在,当您更改资源或 id 并重新生成 R 类时,将重新生成 的值static final ints。在您编译的 .class 文件中硬编码的值可能是指不同的资源。

我太累了,无法测试这是否正确。因此,如果有人能证实我的猜测,那就太好了。

于 2012-09-24T05:45:36.137 回答