Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java t_2扩展了SherlockListFragment{ private ArrayList results=new ArrayList(); 私有字符串tableName=DatabaseHandler.TABLE\u联系人; 私有sqlitedatabasenewdb; 专用静态最终整数相加=1; @凌驾 创建视图上的公共视图(布局、充气机、视图组容器、, Bundle savedInstanceState){ 设置选项菜单(真); 视图v=充气机充气(R.layout.fragment_2,空); 返回v; } 已创建ActivityState上的公共无效(Bundle savedInstanceState){ super.onActivityCreated(savedInstanceState); DatabaseHandler db=新的DatabaseHandler(getActivity()); db.addContact(新白名单(“Ravi”,“9100000000”)); openAndQueryDatabase(); displayResultList(); } 私有void openAndQueryDatabase(){ 试一试{ DatabaseHandler dbHelper=新的DatabaseHandler(getActivity().getApplicationContext()); newDB=dbHelper.getWritableDatabase(); 游标c=newDB.rawQuery(“从中选择姓名、电话号码”+ tableName,null); 如果(c!=null){ if(c.moveToFirst()){ 做{ String firstName=c.getString(c.getColumnIndex(“name”); int age=c.getInt(c.getColumnIndex(“电话号码”); 结果。添加(“姓名:+firstName+”,Pne:+age); }而(c.moveToNext()); } } }catch(sqlitese异常){ Log.e(getClass().getSimpleName(),“无法创建或打开数据库”); }最后{ if(newDB!=null) newDB.execSQL(“从“+tableName”中删除); newDB.close(); } } 私有void显示结果列表(){ TextView tView=新的TextView(getActivity()); setText(“此数据从数据库中检索,仅4个”+ “显示结果的百分比”); getListView().addHeaderView(tView); setListAdapter(新的ArrayAdapter(getActivity()), android.R.layout.simple_list_item_1,results)); getListView().setTextFilterEnabled(true); } @凌驾 创建选项菜单(菜单菜单,菜单充气机){ super.onCreateOptions菜单(菜单,充气机); MenuItem search=menu.add(0,add,0,“刷新”); search.setIcon(android.R.drawable.ic\u菜单\u添加); search.setShowAsAction(菜单项.显示为操作,如果为房间); } @凌驾 公共布尔值onOptionsItemSelected(菜单项项){ 开关(item.getItemId()){ 案例补充: addNumber(); 返回true; 违约: 返回super.onOptionsItemSelected(项目); } } public void addNumber(){ LayoutInflater工厂=LayoutInflater.from(getActivity()); 最终视图文本入口视图=工厂。充气(R.layout.text\u条目,空); 最终EditText名称=(EditText)textEntryView.findViewById(R.id.editText1); 最终EditText电话=(EditText)textEntryView.findViewById(R.id.editText2); name.setHint(“名称”); 电话。设置提示(“电话号码”); final AlertDialog.Builder alert=新建AlertDialog.Builder(getActivity()); alert.setTitle( “联系信息”).setView( textEntryView)。设置正按钮(“保存”, 新建DialogInterface.OnClickListener(){ 公共void onClick(对话框接口对话框, int(按钮){ DatabaseHandler db=新的DatabaseHandler(getActivity()); db.addContact(新的白名单(name.getText().toString(),phone.getText().toString()); openAndQueryDatabase(); displayResultList(); } }).setNegativeButton(“取消”, 新建DialogInterface.OnClickListener(){ 公共void onClick(对话框接口对话框, int(按钮){ /* *用户单击了“取消”,所以请执行一些操作 */ } }); alert.show(); } }_Java_Android_Sqlite_Store - Fatal编程技术网

Java t_2扩展了SherlockListFragment{ private ArrayList results=new ArrayList(); 私有字符串tableName=DatabaseHandler.TABLE\u联系人; 私有sqlitedatabasenewdb; 专用静态最终整数相加=1; @凌驾 创建视图上的公共视图(布局、充气机、视图组容器、, Bundle savedInstanceState){ 设置选项菜单(真); 视图v=充气机充气(R.layout.fragment_2,空); 返回v; } 已创建ActivityState上的公共无效(Bundle savedInstanceState){ super.onActivityCreated(savedInstanceState); DatabaseHandler db=新的DatabaseHandler(getActivity()); db.addContact(新白名单(“Ravi”,“9100000000”)); openAndQueryDatabase(); displayResultList(); } 私有void openAndQueryDatabase(){ 试一试{ DatabaseHandler dbHelper=新的DatabaseHandler(getActivity().getApplicationContext()); newDB=dbHelper.getWritableDatabase(); 游标c=newDB.rawQuery(“从中选择姓名、电话号码”+ tableName,null); 如果(c!=null){ if(c.moveToFirst()){ 做{ String firstName=c.getString(c.getColumnIndex(“name”); int age=c.getInt(c.getColumnIndex(“电话号码”); 结果。添加(“姓名:+firstName+”,Pne:+age); }而(c.moveToNext()); } } }catch(sqlitese异常){ Log.e(getClass().getSimpleName(),“无法创建或打开数据库”); }最后{ if(newDB!=null) newDB.execSQL(“从“+tableName”中删除); newDB.close(); } } 私有void显示结果列表(){ TextView tView=新的TextView(getActivity()); setText(“此数据从数据库中检索,仅4个”+ “显示结果的百分比”); getListView().addHeaderView(tView); setListAdapter(新的ArrayAdapter(getActivity()), android.R.layout.simple_list_item_1,results)); getListView().setTextFilterEnabled(true); } @凌驾 创建选项菜单(菜单菜单,菜单充气机){ super.onCreateOptions菜单(菜单,充气机); MenuItem search=menu.add(0,add,0,“刷新”); search.setIcon(android.R.drawable.ic\u菜单\u添加); search.setShowAsAction(菜单项.显示为操作,如果为房间); } @凌驾 公共布尔值onOptionsItemSelected(菜单项项){ 开关(item.getItemId()){ 案例补充: addNumber(); 返回true; 违约: 返回super.onOptionsItemSelected(项目); } } public void addNumber(){ LayoutInflater工厂=LayoutInflater.from(getActivity()); 最终视图文本入口视图=工厂。充气(R.layout.text\u条目,空); 最终EditText名称=(EditText)textEntryView.findViewById(R.id.editText1); 最终EditText电话=(EditText)textEntryView.findViewById(R.id.editText2); name.setHint(“名称”); 电话。设置提示(“电话号码”); final AlertDialog.Builder alert=新建AlertDialog.Builder(getActivity()); alert.setTitle( “联系信息”).setView( textEntryView)。设置正按钮(“保存”, 新建DialogInterface.OnClickListener(){ 公共void onClick(对话框接口对话框, int(按钮){ DatabaseHandler db=新的DatabaseHandler(getActivity()); db.addContact(新的白名单(name.getText().toString(),phone.getText().toString()); openAndQueryDatabase(); displayResultList(); } }).setNegativeButton(“取消”, 新建DialogInterface.OnClickListener(){ 公共void onClick(对话框接口对话框, int(按钮){ /* *用户单击了“取消”,所以请执行一些操作 */ } }); alert.show(); } }

Java t_2扩展了SherlockListFragment{ private ArrayList results=new ArrayList(); 私有字符串tableName=DatabaseHandler.TABLE\u联系人; 私有sqlitedatabasenewdb; 专用静态最终整数相加=1; @凌驾 创建视图上的公共视图(布局、充气机、视图组容器、, Bundle savedInstanceState){ 设置选项菜单(真); 视图v=充气机充气(R.layout.fragment_2,空); 返回v; } 已创建ActivityState上的公共无效(Bundle savedInstanceState){ super.onActivityCreated(savedInstanceState); DatabaseHandler db=新的DatabaseHandler(getActivity()); db.addContact(新白名单(“Ravi”,“9100000000”)); openAndQueryDatabase(); displayResultList(); } 私有void openAndQueryDatabase(){ 试一试{ DatabaseHandler dbHelper=新的DatabaseHandler(getActivity().getApplicationContext()); newDB=dbHelper.getWritableDatabase(); 游标c=newDB.rawQuery(“从中选择姓名、电话号码”+ tableName,null); 如果(c!=null){ if(c.moveToFirst()){ 做{ String firstName=c.getString(c.getColumnIndex(“name”); int age=c.getInt(c.getColumnIndex(“电话号码”); 结果。添加(“姓名:+firstName+”,Pne:+age); }而(c.moveToNext()); } } }catch(sqlitese异常){ Log.e(getClass().getSimpleName(),“无法创建或打开数据库”); }最后{ if(newDB!=null) newDB.execSQL(“从“+tableName”中删除); newDB.close(); } } 私有void显示结果列表(){ TextView tView=新的TextView(getActivity()); setText(“此数据从数据库中检索,仅4个”+ “显示结果的百分比”); getListView().addHeaderView(tView); setListAdapter(新的ArrayAdapter(getActivity()), android.R.layout.simple_list_item_1,results)); getListView().setTextFilterEnabled(true); } @凌驾 创建选项菜单(菜单菜单,菜单充气机){ super.onCreateOptions菜单(菜单,充气机); MenuItem search=menu.add(0,add,0,“刷新”); search.setIcon(android.R.drawable.ic\u菜单\u添加); search.setShowAsAction(菜单项.显示为操作,如果为房间); } @凌驾 公共布尔值onOptionsItemSelected(菜单项项){ 开关(item.getItemId()){ 案例补充: addNumber(); 返回true; 违约: 返回super.onOptionsItemSelected(项目); } } public void addNumber(){ LayoutInflater工厂=LayoutInflater.from(getActivity()); 最终视图文本入口视图=工厂。充气(R.layout.text\u条目,空); 最终EditText名称=(EditText)textEntryView.findViewById(R.id.editText1); 最终EditText电话=(EditText)textEntryView.findViewById(R.id.editText2); name.setHint(“名称”); 电话。设置提示(“电话号码”); final AlertDialog.Builder alert=新建AlertDialog.Builder(getActivity()); alert.setTitle( “联系信息”).setView( textEntryView)。设置正按钮(“保存”, 新建DialogInterface.OnClickListener(){ 公共void onClick(对话框接口对话框, int(按钮){ DatabaseHandler db=新的DatabaseHandler(getActivity()); db.addContact(新的白名单(name.getText().toString(),phone.getText().toString()); openAndQueryDatabase(); displayResultList(); } }).setNegativeButton(“取消”, 新建DialogInterface.OnClickListener(){ 公共void onClick(对话框接口对话框, int(按钮){ /* *用户单击了“取消”,所以请执行一些操作 */ } }); alert.show(); } },java,android,sqlite,store,Java,Android,Sqlite,Store,为什么我的数据库数据不能保存?我正在一台真正的设备上运行这个应用程序。重新打开应用程序时,所有数据都会被删除。非常感谢您的帮助 我猜你又在重新创建数据库了..每次应用程序 开始 是的,因为在onCreate方法中创建db代码 public void onCreate(SQLiteDatabase db) { String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" + KEY

为什么我的数据库数据不能保存?我正在一台真正的设备上运行这个应用程序。重新打开应用程序时,所有数据都会被删除。非常感谢您的帮助

我猜你又在重新创建数据库了..每次应用程序 开始


是的,因为在onCreate方法中创建db代码

    public void onCreate(SQLiteDatabase db) {
    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
            + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
            + KEY_PH_NO + " TEXT" + ")";
    db.execSQL(CREATE_CONTACTS_TABLE);
}

这是因为您正在从每个openAndQueryDatabase()中的表中删除所有记录


那么,我应该把它放在哪里?@StianInstebo你应该阅读更多的文档,从这里开始-
package com.spxc.wakeuptext.frag;

import java.util.ArrayList;
import java.util.List;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.actionbarsherlock.app.SherlockListFragment;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.spxc.wakeuptext.R;
import com.spxc.wakeuptext.sql.DatabaseHandler;
import com.spxc.wakeuptext.sql.WhiteList;

public class Fragment_2 extends SherlockListFragment{

    private ArrayList<String> results = new ArrayList<String>();
    private String tableName = DatabaseHandler.TABLE_CONTACTS;
    private SQLiteDatabase newDB;
    private static final int ADD = 1;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        View v = inflater.inflate(R.layout.fragment_2, null);       
        return v;       
    }

    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        DatabaseHandler db = new DatabaseHandler(getActivity());
        db.addContact(new WhiteList("Ravi", "9100000000")); 

        openAndQueryDatabase();
        displayResultList();
    }

    private void openAndQueryDatabase() {
        try {
            DatabaseHandler dbHelper = new DatabaseHandler(getActivity().getApplicationContext());
            newDB = dbHelper.getWritableDatabase();
            Cursor c = newDB.rawQuery("SELECT name, phone_number FROM " +
                    tableName, null);

            if (c != null ) {
                if  (c.moveToFirst()) {
                    do {
                        String firstName = c.getString(c.getColumnIndex("name"));
                        int age = c.getInt(c.getColumnIndex("phone_number"));
                        results.add("Name: " + firstName + ",Pne: " + age);
                    }while (c.moveToNext());
                } 
            }           
        } catch (SQLiteException se ) {
            Log.e(getClass().getSimpleName(), "Could not create or Open the database");
        } finally {
            if (newDB != null) 
                newDB.execSQL("DELETE FROM " + tableName);
                newDB.close();
        }

    }

    private void displayResultList() {
        TextView tView = new TextView(getActivity());
        tView.setText("This data is retrieved from the database and only 4 " +
                "of the results are displayed");
        getListView().addHeaderView(tView);

        setListAdapter(new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1, results)); 

        getListView().setTextFilterEnabled(true);

    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        MenuItem search = menu.add(0, ADD, 0, "Refresh");
        search.setIcon(android.R.drawable.ic_menu_add);
        search.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case ADD:
                addNumber();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    public void addNumber(){
        LayoutInflater factory = LayoutInflater.from(getActivity());

        final View textEntryView = factory.inflate(R.layout.text_entry, null);

        final EditText name = (EditText) textEntryView.findViewById(R.id.editText1);
        final EditText phone = (EditText) textEntryView.findViewById(R.id.editText2);

        name.setHint("Name");
        phone.setHint("Phone Number");

        final AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
        alert.setTitle(
          "Contact information").setView(
          textEntryView).setPositiveButton("Save",
          new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog,
             int whichButton) {
               DatabaseHandler db = new DatabaseHandler(getActivity());
               db.addContact(new WhiteList(name.getText().toString(), phone.getText().toString())); 
               openAndQueryDatabase();
               displayResultList();
           }
          }).setNegativeButton("Cancel",
          new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog,
             int whichButton) {
             /*
             * User clicked cancel so do some stuff
             */
           }
          });
        alert.show();
    }
}
    public void onCreate(SQLiteDatabase db) {
    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
            + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
            + KEY_PH_NO + " TEXT" + ")";
    db.execSQL(CREATE_CONTACTS_TABLE);
}
finally {
        if (newDB != null) 
            newDB.execSQL("DELETE FROM " + tableName);
            newDB.close();
    }