フラグメント内に、カーソルアダプタを使用してデータベースからリストビューの塗りつぶしを開始するボタンがあります。OnClick(ビュービュー)内のカーソルアダプタにコンテキストを渡すとAndroidエラーが発生する
フラグメントのコードは次のようなものになる:
public class TabFragment6 extends ListFragment {
/** (non-Javadoc)
* @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
LinearLayout Layout6 = (LinearLayout) inflater.inflate(R.layout.tab_frag6_layout, container, false);
// Register for the Button.OnClick event
Button bShopGuit = (Button)Layout6.findViewById(R.id.buttonshopguit);
bShopGuit.setOnClickListener(new View.OnClickListener() { //abre setonclicklistener(
@Override
public void onClick(View v) {
Cursor allItems;
MyDatabase db;
Context ctx = (Context)TabFragment6.this.getActivity();
db = new MyDatabase(ctx);
allItems = db.getGuitarItems();
ListAdapter adapter = new SimpleCursorAdapter (ctx,
android.R.layout.simple_list_item_1,
allItems,
new String[] {"ItemName"},
new int[] {android.R.id.text1});
getListView().setAdapter(adapter);
}
}); //fecha)
return Layout6;
}
しかし、私はアダプター内のエラーを取得しています:方法getactivity()タイプの新しいView.OnClickListener(のために定義されていませんが) {}
どうすればこの問題を解決できますか?ありがとう!!
うーん、どうすればいい?申し訳ありません、アンドロイドで多くの経験がありません。 – tyb
「フラグメント」のカプセル化されたインスタンスがある限り、自分が行っているようにキャストすることができます。あなたの正確なコード、tybを試しましたが、そのエラーはありませんでした。あなたはあなたのキャストをした後に救いましたか? –
はい、現在も機能しています。私はそれを保存しましたが、ファイルを変更するまで、エラーは消えませんでした。 Eclipseで不具合があったはずです。御時間ありがとうございます! – tyb