私は複数のアクティビティを持つアプリケーションを持っています。メインクラスでは、私は、データベースを開いて、そのようなコンテンツのリストを作成します。Androidフォームをアクティビティとして
public class MyApplication extends Activity
{
private List<PhoneNumber> numberList;
public void onCreate(Bundle savedInstanceState)
{
...
numberList = new ArrayList<PhoneNumber>();
...
loadDatabase()
...
}
private void loadDatabase()
{
// File IO and parsing stuff
addNumber(thisNumber); // executes for each entry
}
public void addNumber(PhoneNumber thisNumber)
{
numberList.add(thisNumber);
}
}
これは正常に動作し、私は、このデータが取り込まれる主な活動でListViewコントロールを持っています。今、次のステップに進みます。私は、このリストにエントリを追加する新しいアクティビティとしてフォームを起動しようとしています。アクティビティは正常に起動し、フォームを簡単に作成できました。問題はリストにアクセスして追加することです。
public class AddNumber extends Activity
{
...
// This function is called from the done button
// <Button android:text="Done" android:onClick="formDone"/>
public void formDone(View v)
{
// findViewByIds here to get data from form.
// This is done correctly and I can see my data in memory
MyApplication access = new MyApplication();
PhoneNumber newNumber = new PhoneNumber();
// Fill newNumber object with data from form. Done correctly. Verified
access.addNumber(newNumber);
}
formDone()
の最後の行が正しく実行されます。デバッグを通して、私はApplicationクラスに進んでaddNumber()
を実行します。 numberList.add(thisNumber);
を実行する前に、リストに追加しようとしているオブジェクトのthisNumber
オブジェクトのメモリの内容を見ることができ、そのデータは正しいです。標準のAndroid形式でアプリケーションをクラッシュさせますが、その行を実行しようとしています。 ( 'ソースが見つかりません'、続いてZygoteInit $ MethodBlahBlahを持つView.classをロードします)。
addNumber()
に供給されるデータが正しいと思われ、データベースのデータからリストを作成してアプリケーションが最初に起動したときに機能が完全に正常に機能するように見えるため、ちょっと混乱します。基本的に、私はこれについて正しい考えですか?このようなフォームは自分のアクティビティなのか、それとももっと良い方法があるのでしょうか?それが自分自身の活動である場合、私は何を間違っているのですか?
おかげで、
ネイト
あなたは何をしているのか分かりませんが、アプリケーションでは 'Application access = new Application();'は決して*有効ではありません。 *確かに、状況によっては、ここではありません。 – Falmarri
クラスとオブジェクトの名前を変更して、投稿したコードの量に意味があるようにしました。たぶん私はそれで偉大な仕事をしなかった... "アプリケーション"は、メインクラスを参照してください。私はそのメンバ関数にアクセスするためのメインクラスのオブジェクトを作成しています。どのように有効ではないのですか?他にどのようにプライベートリストにアクセスできますか? – linsek