0

Androidアプリ用に、BaseballCardsList、BaseballCardsDetails、FilterBaseballCardsの3つのアクティビティを作成しました。BaseballCardsListは、アプリの起動時に読み込まれるメインのアクティビティです。メニューがあり、他の2つのアクティビティのいずれかが表示されます。BaseballCardsListとBaseballCardsDetailsを持っていたとき、すべてが正しく機能しているように見えました。しかし、FilterBaseballCardsを追加すると、問題が発生し続けます。私はすでに、私が省略した1つの問題android:layout_widthandroid:layout_height属性を理解しました。私の現在の問題は、BaseballCardsDetailsまたはFilterBaseballCardsのXMLレイアウトファイルを変更すると、メニューをクリックして間違ったアクティビティが読み込まれるか、アクティビティがまったく読み込まれないことです(アプリは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 に答える