2010-07-15 54 views
0

這裏是我的Arrival.java錯誤與數據庫中的日食

package one.two; 

import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 

import android.app.ListActivity; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 

public class Arrival extends ListActivity 
{ 
    private ListView listView; 


    /** Called when the activity is first created. */ 
    public void onCreate(Bundle savedInstanceState) 
    { 
     ArrayList<String> retList = new ArrayList<String>(); 

     System.out.println("Start onCreate Function\n"); 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     System.out.println("In onCreate Function\n"); 
     System.out.println("In of GetData\n"); 
     DBAdapter db = new DBAdapter(this); 

     System.out.println("DB Open\n"); 
     db.open(); 
     System.out.println("DB Opened\n"); 
     retList = getData(); 
     System.out.println("Out of GetData\n"); 
     // force count no. of records in table 
     // dump to check index 
     int cnt = 2; 

     int i=0; 
     for (i = 0; i<cnt; i++) 
      System.out.println(retList.toString()); 
     System.out.println("Array 2 String\n"); 

     Cursor c = db.getCursor(); 
     String[] from = new String[] {DBAdapter.status}; 
     int[] to = new int[] {R.id.Text1}; 
     listView = (ListView) findViewById(android.R.id.list); 

     setListAdapter(new SimpleCursorAdapter(this, android.R.id.list, c, from, to)); 

     //ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(this, android.R.id.list); 
     SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.id.list, c, null, null); 
     this.setListAdapter(mAdapter); 

     System.out.println("Show List\n"); 
     db.close(); 
    } 

    public static ArrayList<String> getData() 
    { 


     ArrayList<String> items = DBAdapter.getAllTitles(); 
     System.out.println("Return a LIST titles\n"); 
     return items; 
     } 


    } 

DBAdapter.java

package one.two; 

import java.util.List; 

import android.app.ListActivity; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.database.sqlite.SQLiteDatabase.CursorFactory; 

import java.util.ArrayList; 

public class DBAdapter 
{ 
    public String status = "status"; 
    public String id = "id"; 
    public String arrival = "arrival"; 
    public String destination = "destination"; 
    public String ferry = "ferry"; 
    private static String DB_PATH = "/data/data/one.two/databases/"; 
    private static final String DATABASE_NAME = "ferry.db"; 
    private static final String DATABASE_TABLE = "port"; 
    public static Context context; 
    public Cursor c; 

    public static SQLiteDatabase DbLib; 

     //overloaded non-null constructor 
    public DBAdapter(Context context) 
    { 
     DbLib = context.openOrCreateDatabase(DATABASE_NAME, SQLiteDatabase.CREATE_IF_NECESSARY,null); 
     System.out.println("OpenOrCreateDB Done"); 
    } 

    public class DatabaseHelper extends SQLiteOpenHelper 
    { 
     Context context; 
     DatabaseHelper(Context context) 
     { 
      super(context, DATABASE_NAME, null, DATABASE_VERSION); 
      this.context = context; 

     }//end constructor DatabaseHelper 

     @Override 
     public void onUpgrade(SQLiteDatabase db, int oldVersion, 
       int newVersion) 
     { 
     }//end onUpgrade() 

     @Override 
     public void onCreate(SQLiteDatabase db) 
     { 
     }//end onCreate() 
    }// end class DatabaseHelper 

    private static DatabaseHelper DBHelper; 
    //private static SQLiteDatabase DbLib; 

    private static final int DATABASE_VERSION = 1; 

    //// context brought up ///////////// 
    //private final Context context; 


     /*public void DBAdapter() throws SQLException 
     { 
      String myPath = DB_PATH + DATABASE_NAME; 
      db = SQLiteDatabase.openDatabase(myPath, null, 
        SQLiteDatabase.OPEN_READONLY); 
     }//end DBAdapter()*/ 



     public static ArrayList<String> getAllTitles() 
     { 

      ArrayList<String> port = new ArrayList<String>(); 
       Cursor c=null; 


       c = DbLib.query("port", 
         new String[] { "status", "id", "arrival", 
           "destination", "ferry" }, null, null, 
         null, null, null); 
       try { 
        if (c!=null) { // start - when there is at least 1 record 
         System.out.println("Cursor is NOT NULL"); 

         int i =0; 
         for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) 

         { 
            // Debug Stm 
          System.out.println("Record No. "+i); 
          System.out.println(c.getString(0)); 
          System.out.println(c.getString(1)); 
          System.out.println(c.getString(2)); 
          System.out.println(c.getString(3)); 
          System.out.println(c.getString(4)); 
          // Assign database cursor.records to arraylist 
          port.add(i,c.getString(0)); 
          port.add(i,c.getString(1)); 
          port.add(i,c.getString(2)); 
          port.add(i,c.getString(3)); 
          port.add(i,c.getString(4)); 
          i = i + 1; 

         } 
        } // end - where there is at least 1 record 


       } finally { 
        if (c!=null) { 
        c.close(); 
       } 

       } 
      return port; 
     }//end getAllTitles() 

     public void open() { 
      //Open the database 
      String myPath = DB_PATH + DATABASE_NAME; 
      DbLib = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY); 

     } 
     public Cursor getCursor(){ 
      return c; 

     } 

     public void close() 
     { 
      DbLib.close(); 

     } 

    }//end class DBAdapter 

錯誤:無法使靜態參考非靜態字段DBAdapter.status

我可以知道是什麼導致了這個問題,如我的Arrival.java String [] from = new String [] {DBAdapter.status}; 但DBAdapter.status取自我的DBAdapter,public String status =「status」;

回答

1

由於您沒有從對象的實例訪問它,所以您需要使狀態爲靜態。

public static String status = "status";

+0

沒有任何數據顯示在我的列表視圖 – User358218 2010-07-15 03:15:47