我想从表格中检索特定的单元格。我想要 alarm_music(TEXT),其中我将警报的小时数(整数)和分钟数(整数)(在 where 子句中)存储在警报表中。
触发查询的代码
mBhelperClass = new AlarmsDBhelperClass(this);
db= mBhelperClass.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT musicPath FROM alarms WHERE hours="+hour+" AND minutes="+min,null);
Log.d("gaurnagSnooze",""+cursor.getCount());
if (cursor.moveToFirst()) {
songPath = cursor.getString(cursor.getColumnIndex(AlarmsDBhelperClass.MUSIC_PATH));
Log.d("if executed! ","songpath initialized!");
}
cursor.close();
Run Code Online (Sandbox Code Playgroud)
moveToFirst() 返回 FALSE 意味着表中没有行。
但是当我触发SELECT musicPath FROM alarmsmoveToFirst() 时返回TRUE。
这怎么可能?
我正在使用 RecyclerView 并从数据库中填充数据并将其存储到 arrayLists 中。我还在回收器视图中添加了一个 onLongClickListener(),它删除了长按的行。一切正常,但是当我删除最后一个应用程序崩溃时,我得到 Java.Lang.IndexOutOfBoundsException index:0 size:0。
这是我的代码
public class MainActivity extends AppCompatActivity implements AlarmRecyclerViewInterface {
FloatingActionButton mAlarmAddButton;
RecyclerView mRecyclerView;
SQLiteDatabase db;
AlarmsDBhelperClass mAlarmsDBhelperClass;
ArrayList<String> nameArrayList = new ArrayList<>();
ArrayList <String> modeArrayList = new ArrayList<>();
ArrayList<String> repeatArrayList = new ArrayList<>();
ArrayList<String> hoursArrayList = new ArrayList<>();
ArrayList<String> minArrayList = new ArrayList<>();
Switch mSwitch;
AlarmAdapter alarmAdapter = new AlarmAdapter(hoursArrayList,minArrayList,modeArrayList,repeatArrayList,nameArrayList,this);
ImageView emptyImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//Initializing RecyclerView, DatabaseHelperClass, FAB button, The ON OFF switch & …Run Code Online (Sandbox Code Playgroud)