当我尝试从我的Activity中的数据库SQLite获取数据时
DataBaseAdapterCars mDbHelper = new DataBaseAdapterCars(this);
mDbHelper.createDatabase();
mDbHelper.open();
Car[] carsList= mDbHelper.getDataDBCarsArray(uso, eta,
category, class);
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
12-10 17:14:47.069: E/AndroidRuntime(17936): FATAL EXCEPTION: main
12-10 17:14:47.069: E/AndroidRuntime(17936): java.lang.StringIndexOutOfBoundsException
12-10 17:14:47.069: E/AndroidRuntime(17936): at android.app.ContextImpl.validateFilePath(ContextImpl.java:1649)
12-10 17:14:47.069: E/AndroidRuntime(17936): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:555)
12-10 17:14:47.069: E/AndroidRuntime(17936): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
12-10 17:14:47.069: E/AndroidRuntime(17936): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:118)
12-10 17:14:47.069: E/AndroidRuntime(17936): at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
12-10 17:14:47.069: E/AndroidRuntime(17936): at com.my.app.db.DataBaseHelper.createDataBase(DataBaseHelper.java:36)
12-10 17:14:47.069: E/AndroidRuntime(17936): at com.my.app.db.DataBaseAdapterCars.createDatabase(DataBaseAdapterCars.java:42)
12-10 17:14:47.069: E/AndroidRuntime(17936): at com.my.app.Cars.initializeData(Cars.java:111)
12-10 17:14:47.069: E/AndroidRuntime(17936): at com.my.app.Cars$MyAsync$1.run(Cars.java:156)
12-10 17:14:47.069: E/AndroidRuntime(17936): at android.os.Handler.handleCallback(Handler.java:587)
12-10 17:14:47.069: E/AndroidRuntime(17936): at android.os.Handler.dispatchMessage(Handler.java:92) …Run Code Online (Sandbox Code Playgroud) public static final String Database_Name="content.db";
public static final int Database_Version=1;
public static final String Table_Name="images";
public static final String Column1="contentid";
public static final String Column2="content_type";
public static final String Column3="content";
public static final String Column4="has_update";
public static final String Column5="server";
public static final String Column6="_id";
public static final String Create_Database =
"CREATE TABLE " + Table_Name +
" (" + Column6 + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
Column1 + " LONG, " +
Column2 + " TEXT NOT …Run Code Online (Sandbox Code Playgroud) 我有一个包含a 的Fragment被叫.其中的项目由另一个叫做的类添加.我想要做的是在项目添加到列表时保存列表.(目前,我的列表中的视图只是s,但后来我希望向它们添加图像,并且有多行等等,所以这些也需要保存).我的列表是:它被调用.HistoryFragmentListViewListViewDataModelTextViewArrayList<Map<String, String>>mPlanetList
我认为保存到a SQLiteDataBase是解决方案,但即使在阅读了多个答案/教程后看起来也很复杂.
我看过的一些网站:
http://www.vogella.com/articles/AndroidSQLite/
http://developer.android.com/guide/topics/data/data-storage.html#db
http://stackoverflow.com/q/5482402/2442638
http://stackoverflow.com/q/3142285/2442638
Run Code Online (Sandbox Code Playgroud)
这个"问题"中有很多问题,但我的主要问题分为两部分:
a)是DataBase正确的解决方案吗?
- >如果'是' - > b)制作一个简单的方法是什么?我宁愿不使用JSON/GSON
- >如果'不' - > c)我应该使用什么? SharedPreferences?
假设a DataBase是正确的解决方案,我想我需要序列化我的arraylist或者可能使用StringSet - 我不知道怎么做,因为我有这样的arraylist:ArrayList<Map<String, String>> 而不是没有map对象的arraylist.
此外,我试图从我的DataModel类访问我的数据库(因为这是我将我的项目添加到列表中),但我无法让它工作.
我已经添加了我当前的代码 - 数据库的工作还没有完成,但我仍然坚持下一步该做什么.
这是我的HistoryFragment班级:
// Remove imports
public class HistoryFragment extends FragmentBase implements OnItemAddedHandler {
// FragmentBase is just another class which extends Fragment and the moment.
ListView lv;
SimpleAdapter simpleAdpt; …Run Code Online (Sandbox Code Playgroud) 我正在使用SQLite开发一个应用程序.我的要求是我想更新表格中的密码.
我写了一个更新查询,但它无法正常工作.错误:
android.database.sqlite.SQLiteException: unrecognized token: "' WHERE username = ?": ,
while compiling: UPDATE TABLE_USER SET password = god' WHERE username = ?` condition.
Run Code Online (Sandbox Code Playgroud)
代码:
UserDaoImpl.java
public void updateEntry(String newPassword,String name)
{
Cursor cur= myDB.rawQuery("UPDATE "+UserDBHandler.USER_TABLE+" SET
"+UserDBHandler.PASSWORD+" = "+newPassword+"' WHERE "+
UserDBHandler.USER_NAME+" = ?",new String[]{name});
}
ChangePasswordActivity.java
public class ChngePasswordActivity extends Activity {
private EditText oldPwdEdit;
private EditText newPwdEdit;
private EditText cnfrmEdit;
private Button submitBtn;
private String oldPwd;
private String newPwd;
private String cnfrmPwd;
private UserDaoImpl userDetalsIml;
@Override
protected …Run Code Online (Sandbox Code Playgroud) 我正在开发一个小应用程序,它将位置纬度和经度存储在SQLite数据库中.我有三个课程如下:
AddPlaceActyivity.java
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.example.rememberthislocation.R;
public class AddPlaceActivity extends Activity{
Button btn_remember,btn_maps;
Fragment fr;
Button addlocation;
EditText locationname;
String mylocationname,mylatitude,mylongitude;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Log.d("my","In oncreateview");
setContentView(R.layout.remember_fragment);
addlocation = (Button)findViewById(R.id.btn_addlocation);
locationname = (EditText)findViewById(R.id.locationname);
mylocationname = locationname.getText().toString();
Log.d("my","value 1 taken");
mylatitude = "0.0";
mylongitude = "0.0";
Log.d("my", "data values taken");
addlocation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MySqliteHelper db …Run Code Online (Sandbox Code Playgroud) 我一直在寻找一段时间来试图找到如何使用MySQLite数据库中的信息填充列表视图.现在当我想到我终于找到了一些信息时,我想出了NullPointers.
这是我的代码(HomeFragment.java):
package zygs.com.seniorproject.fragments;
import android.app.Fragment;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
import zygs.com.seniorproject.R;
import zygs.com.seniorproject.database.DatabaseHandler;
import zygs.com.seniorproject.database.Inventory;
public class HomeFragment extends Fragment {
// Initializing Variables
Button Item_Button;
Button Display_Button;
EditText Box_Item_Des;
EditText Box_Item_Quant;
EditText Box_Item_ID;
final DatabaseHandler db = new DatabaseHandler(getActivity());
public HomeFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
setHasOptionsMenu(true);
final View …Run Code Online (Sandbox Code Playgroud) android android-listview android-fragments android-sqlite android-fragmentactivity
我正在尝试插入数据sqlite Database.我正在按照Youtube教程执行此任务.
我编写了以下代码并成功创建Sqlite Database file但是当我尝试插入数据时,它会给出错误消息.
我写了以下代码.请指导我在这里做错了什么.
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME="ep";
public static final String TABLE_NAME= "transactionsHistory";
public static final String ID= "ID";
public static final String MESSAGE= "MESSAGE";
public static final String CREATE_TABLE= "create table "+ TABLE_NAME + " ( "+ID+" INTEGER PRIMARY KEY AUTO INCREMENT, "+MESSAGE+" TEXT)";
public static final String DROP_TABLE= "DROP TABLE IF EXISTS"+ TABLE_NAME;
private Context context;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, …Run Code Online (Sandbox Code Playgroud) 这是我第一次打开活动时在我的应用程序上执行的逻辑:
主要活动的逻辑第二次打开
对不起,我的英文或问题是重复的.我只是找到了一种从服务器上获取数据的最佳方法.非常感谢,如果有人给我一个如何处理它的例子.
我有一个使用SQLite的android Activity,在Activity中,用户可以进行更改,这些更改会影响存储在DB中的数据.
我想知道什么是更好的:在创建数据库时写入更改,或者将所有这些更改保存在一个List中,并在OnStop方法(在活动结束时)的DB中写入所有内容.
我有一个sqlite数据库,我想将数据库更改为Room database。
表之一没有任何主键,只有两个外键。
我使用以下查询在房间之前创建了表:
CREATE TABLE student_performance(
class_id int ,
student_id char(10),
class_date date ,
absent boolean DEFAULT 0,
delay boolean DEFAULT 0,
positive int DEFAULT 0,
negative int DEFAULT 0,
quiz float ,
FOREIGN KEY (student_id , class_id) REFERENCES student(student_id , class_id)
ON DELETE CASCADE
ON UPDATE CASCADE);
Run Code Online (Sandbox Code Playgroud)
现在我为房间定义表:
@Entity(tableName = "performance",
foreignKeys = {@ForeignKey(
entity = StudentEntry.class,
parentColumns = {CLASS_ID, STUDENT_ID},
childColumns = {CLASS_ID, STUDENT_ID},
onDelete = CASCADE, onUpdate = CASCADE)})
public class PerformanceEntry {
. …Run Code Online (Sandbox Code Playgroud)