私は最初の Android アプリを作成しています。3 つのアクティビティがあります: BaseballCardList、BaseballCardDetails、および FilterBaseballCards です。BaseballCardList がメインのアクティビティとして読み込まれます。他の 2 つのアクティビティのいずれかを表示するための 2 つのオプションを含むメニューがあります。BaseballCardDetails は正常に読み込まれます。ただし、FilterBaseballCards を読み込もうとすると、「残念ながら、Android の BBCT は停止しました」というメッセージが表示されます。エラーメッセージ。Android エミュレーターでアプリを実行しています。関連するコードは次のとおりです。
res/layout/card_list.xml:
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/card_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
res/layout/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="wrap_content"
android:orientation="vertical"
>
<TextView android:text="@string/filter_by_label" />
<RadioGroup android:id="@+id/filter_by">
<RadioButton android:id="@+id/year"
android:text="@string/year_radio_button"
/>
<RadioButton android:id="@+id/number"
android:text="@string/number_radio_button"
/>
<RadioButton android:id="@+id/year_and_number"
android:text="@string/year_and_number_radio_button"
/>
<RadioButton android:id="@+id/player_name"
android:text="@string/player_name_radio_button"
/>
</RadioGroup>
<Button android:id="@+id/ok"
android:text="@string/ok_button"
/>
<Button android:id="@+id/cancel"
android:text="@string/cancel_button"
/>
</LinearLayout>
BaseballCardList.java:
package bbct.android;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
public class BaseballCardList extends Activity {
private static final String DEBUG_TAG = "BaseballCardList";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.card_list);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
new MenuInflater(this).inflate(R.menu.option, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.add:
Log.d(DEBUG_TAG, "Starting BaseballCardDetails");
this.startActivity(new Intent(this, BaseballCardDetails.class));
return true;
case R.id.filter:
Log.d(DEBUG_TAG, "Starting FilterBaseballCards");
this.startActivity(new Intent(this, FilterBaseballCards.class));
return true;
}
return super.onOptionsItemSelected(item);
}
}
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);
}
}
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="bbct.android"
android:versionCode="1"
android:versionName="1.0">
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
<activity android:name=".BaseballCardList"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".BaseballCardDetails" />
<activity android:name=".FilterBaseballCards" />
</application>
</manifest>
BaseballCardDetails.java は FilterBaseballCards.java とほぼ同じなので、投稿しません。
このエラー メッセージが表示されるのはなぜですか? さらに重要なのは、問題を自分で追跡するにはどうすればよいですか? Eclipse ではなく、Android コマンドライン ツールを使用しています。いくつかのログ メッセージを追加し始めましたが、問題の原因を追跡するのに役立つ可能性のあるログ出力を表示する方法がわかりません。
アップデート:
setContentView()
FilterBaseballCards をに変更するsetContentView(R.layout.card_details);
と、card_details
ビューが正常に読み込まれます。これにより、問題が私のファイルに絞り込まれfilter_cards.xml
ます。
別の更新:
私は単純化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="wrap_content"
android:orientation="vertical"
>
<TextView android:text="@string/filter_by_label" />
</LinearLayout>
以前と同じエラーが発生し続けます。