私はAndroid開発に不慣れで、作成を依頼されたシンプルなリストアプリを持っています。アプリをアクティビティベースとして使用することに問題はありませんが、機能を拡張し、「ユニバーサル」アプリのフラグメントを使用する必要があります。私の主な活動は次のとおりです。
3 に答える
次の手順を実行することで、コードを正常にコンパイルできました。
この行が問題のようです(Main.java内):
contactCursor = contactDBAdapter.getAllContactsCursor();
私はあなたがどのように初期化されるかを見ました、そしてあなたがあなたの活動のためにあなたのcontactDBAdapter
後にそれを初期化することがわかりました。setContentView
ただし、ビューには。への呼び出しが含まれますcontactDBAdapter
。したがって、Main.javaでは、次の2行をonCreateウィンドウの先頭に移動する必要があります。
public void onCreate(Bundle savedInstanceState)
{
contactDBAdapter = new ContactDBAdapter(this);
contactDBAdapter.open();
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
....
}
さらに、Main.javaの次の行を削除(またはコメントアウト)する必要があります。
contact.clear();
また、ListViewの呼び出し方法にさらに2つの変更を加える必要がありました
list_view.xmlで、Android用のListViewを識別する方法は次のとおりです。
android:id = "@ + id / android:list"
ContactListFragment.javaで、次のようにListViewを呼び出します。
parent.myListView =(ListView)v.findViewById(android.R.id.list);
既存のコードをコピーするだけですべてをセットアップするEclipseテンプレートを使用してみただけではありませんか?
[ファイル]>[新規]>[Androidアプリケーションプロジェクト]で、[アクティビティの作成ステップ]で[
Fragmentクラスには、空のデフォルトコンストラクターが必要です。Androidリファレンスを参照してください