2011-02-04 27 views
0

當我使用一個SimpleCursorAdapter,Eclipse中說的構造SimpleCursorAdapter(ShoppingList,INT,光標,SQLiteDatabase,ListView的)是不確定的。構造SimpleCursorAdapter(ShoppingList,INT,光標,SQLiteDatabase,ListView控件)是未定義

這裏是我的.java:

package com.shoppinglist; 

import java.util.Locale; 

import android.app.Dialog; 
import android.app.ListActivity; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 

public class ShoppingList extends ListActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ListView listview = (ListView) findViewById(android.R.id.list); 

     SQLiteDatabase db; 
     db = openOrCreateDatabase("Items.db", SQLiteDatabase.CREATE_IF_NECESSARY, null); 
     db.setVersion(1); 
     db.setLocale(Locale.getDefault()); 
     db.setLockingEnabled(true); 

     final String CREATE_TABLE_ITEMS = 
      "CREATE TABLE tbl_items (" 
      + "id INTEGER PRIMARY KEY AUTOINCREMENT," 
      + "item_name TEXT);"; 
     db.execSQL(CREATE_TABLE_ITEMS); 

     Cursor c = db.query(CREATE_TABLE_ITEMS, null, null, null, null, null, null); 
     startManagingCursor(c); 

     ListAdapter adapter = new SimpleCursorAdapter(this, 
       R.layout.rowlayout, c, db, listview); 
     setListAdapter(adapter); 

     Button button1main = (Button) findViewById(R.id.add); 
     button1main.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
      final Dialog additem = new Dialog(ShoppingList.this); 
      additem.setContentView(R.layout.maindialog); 
      final EditText et = (EditText)additem.findViewById(R.id.edittext); 
      additem.setTitle("Type your item"); 
      additem.setCancelable(true); 
      et.setHint("Type the name of an item..."); 

      Button button = (Button) additem.findViewById(R.id.cancel); 
      button.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        additem.dismiss(); 
       } 
      }); 
      additem.show(); 

      Button ok = (Button) additem.findViewById(R.id.ok); 
      ok.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        final String text = et.getText().toString(); 
        additem.dismiss(); 
        et.setText(""); 
       } 
      }); 
     } 
     }); 
    } 
} 

回答

1

我沒有用一個SimpleCursorAdapter之前,但documentation指出構造是:

public SimpleCursorAdapter (Context context, 
     int layout, Cursor c, String[] from, int[] to) 

但是你的構造函數調用傳遞SQLiteDatabase代替String陣列:

ListAdapter adapter = new SimpleCursorAdapter(this, 
      R.layout.rowlayout, c, db, listview); 
+0

什麼將是一個例子來說明從字符串和int到什麼? – Cg2916 2011-02-05 00:35:01

相關問題