ボタンを押すと XML ファイルをダウンロードし、その xml データをカスタム オブジェクトに入れ、それを 2 番目のアクティビティに渡すアプリを開発しています。
問題は、何かが間違っていることです。startActivity()
関数を呼び出すと、アプリがランタイム エラーでクラッシュします。私のコードは次のとおりです。
public void onClickBtn1(View view)
{
final ProgressDialog dlg = ProgressDialog.show( this, "Data wait", "Waiting data from the site ..");
// Thread to wait data
Thread th = new Thread() {
public void run() {
// Download and parse xml data
final DatiSport dati = new DatiSport();
boolean ret = dati.download();
dlg.dismiss();
// check result
if (ret==true)
{
// -- Ok
handlerUI.post( new Runnable() {
public void run() {
Intent intSec = new Intent(AICSActivity.this, SportActivity.class);
intSec.putExtra("datiSport", dati);
startActivity(intSec);
}
});
}
else
{
通話中にアプリがクラッシュしstartActivity()
ます。行を改行するstartActivity()
と、「dati」という変数を見ることができず、これが明確に定義されていないと思います。
データを 12345 に置き換えれば問題ありません。
データの問題はどれですか?
--- 自分で返信できないため、ここで変更 ---
わかりました。返信ありがとうございます。
私の推測では、アプリ データを再設計する必要があります。
私の最初の試みは、XML テキストをダウンロードし、データを (むしろ) 複雑なオブジェクトに収めることでした。このオブジェクトには選手権のリストが含まれ、それぞれにカテゴリのリストが含まれ、それぞれにチームのリストが含まれます。
問題は、Serializable が機能していないため、Parcelable の実装が複雑すぎて、xml ファイルとほぼ同じデータを生成する必要があることです。
XMLテキストを他のアクティビティに直接渡す方が簡単かどうか疑問に思っています(チャンピオンシップのリスト、選択したチャンピオンシップのカテゴリ、選択したカテゴリのチームのリストを順番に表示する必要があります...)
他のアイデアはありますか?