2015-09-24 26 views
0

我想要啓動一個新活動時遇到問題,包含對擴展SQLiteOpenHelper的對象的引用。SQLiteOpenHelper創建期間「應用程序已停止...」

這是我SART我的活動:

// Listener for button 
class LoginButtonListener implements View.OnClickListener { 
    @Override 
    public void onClick(View v) { 
     Intent intent = new Intent(v.getContext(), MasterUserActivity.class); 
     v.getContext().startActivity(intent); 

    } 
} 

我的新活動:

// I will be implementing ListView in here 
public class MasterUserActivity extends ListActivity { 

    private DBHandler dbHandler = new DBHandler(this); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.master_user); 

     Toast toast = Toast.makeText(MasterUserActivity.this, "It works :)", Toast.LENGTH_LONG); 
     toast.show(); 

    } 

} 

而且我DBHandler類:

public class DBHandler extends SQLiteOpenHelper { 

    public DBHandler(Context contex) { 
     super(contex, "bankapplication.db", null, 1); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase database) { 
     String query = "CREATE TABLE users (login TEXT, password TEXT, name TEXT, " 
       + "phone TEXT, country TEXT, balance TEXT)"; 
     database.execSQL(query); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) { 
     String query = "DROP TABLE IF EXISTS users"; 
     database.execSQL(query); 
     onCreate(database); 
    } 
} 

它工作正常,當我註釋掉private DBHandler dbHandler = new DBHandler(this);

這裏有什麼問題?

+1

向我們展示您的堆棧跟蹤。 –

+1

你不能在聲明區域執行此操作:'private DBHandler dbHandler = new DBHandler(this);'你必須把它分成兩個語句。並將初始化放入'onCreate()' –

+0

它仍然不起作用 –

回答

2

此行是導致錯誤:

private DBHandler dbHandler = new DBHandler(this); 

同時聲明變量不能叫新的,而不是初始化活動的onCreate方法內。

+0

它仍然不起作用 –

+0

你能發佈你正在得到的錯誤細節嗎? –