2015-06-15 56 views
0

我有改變DB值的字段的按鈕,並且我想在ListView中顯示具有一些值的所有字段(頂部,在我的例子中)。我知道,我做錯了什麼,但是沒有知道什麼。 MainActivity:使用查詢時出錯

public class MainActivity extends ActionBarActivity implements View.OnClickListener { 
    Button btnadd; 
    LinearLayout llMain; 
Time today = new Time(Time.getCurrentTimezone()); 
DBAdapter myDb; 
ImageButton imgStar; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 



     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ActionBar actionBar = getSupportActionBar(); 
     actionBar.hide(); 
     btnadd = (Button) findViewById(R.id.button); 
     //llMain = (LinearLayout) findViewById(R.id.llMain); 
     btnadd.setOnClickListener(this); 
     openDB(); 
     populateListView(); 
     imgStar = (ImageButton)findViewById(R.id.imageButton2); 
     imgStar.setOnClickListener(this); 
    } 


     public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 

    @Override 
    public void onClick(View v) { 

     switch (v.getId()) { 
      case R.id.button: 
       Intent intent = new Intent(this, result.class); 
       startActivityForResult(intent, 1); 
       break; 
      case R.id.imageButton2: 
       ifTop(); 
       break; 
      } 
     } 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 


     String name = data.getStringExtra("task"); 
     String grup = data.getStringExtra("grup"); 
today.setToNow(); 
    String timestamp = today.format("%Y-%m-%d %H:%M:%S"); 
myDb.insertRow(name,timestamp,grup); 
populateListView(); 





      } 

private void openDB(){ 
    myDb = new DBAdapter(this); 
myDb.open(); 
} 
private void populateListView() { 
     Cursor cursor = myDb.getAllRows(); 
     String[] fromFieldNames = new String[]{DBAdapter.KEY_ROWID,DBAdapter.KEY_TASK}; 
     int[] toViewIDs = new int[]{R.id.textView3,R.id.textView6}; 
     SimpleCursorAdapter myCursorAdapter; 
     myCursorAdapter = new SimpleCursorAdapter(getBaseContext(),R.layout.item_layout,cursor,fromFieldNames,toViewIDs,0); 
     ListView myList = (ListView) findViewById(R.id.listView); 

     myList.setAdapter(myCursorAdapter); 
    } 
private void ifTop(){ 
    Cursor c = myDb.ifTopViews(); 
    String[] fromFieldNames = new String[]{DBAdapter.KEY_ROWID,DBAdapter.KEY_TASK}; 
    int[] toViewIDs = new int[]{R.id.textView3,R.id.textView6}; 
    SimpleCursorAdapter myCursorAdapter; 
    myCursorAdapter = new SimpleCursorAdapter(getBaseContext(),R.layout.item_layout,c,fromFieldNames,toViewIDs,0); 
    ListView myList = (ListView) findViewById(R.id.listView); 
    myList.setAdapter(myCursorAdapter); 
} 
    } 

結果:

public class result extends ActionBarActivity implements View.OnClickListener { 
    EditText etName; 
    Button btnOk; 
    EditText etData; 
    boolean bIcon = true; 
ImageButton star; 
    String grup; 
    Intent intent = new Intent(); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_result); 
     ActionBar actionBar = getSupportActionBar(); 
     actionBar.hide(); 
     etName = (EditText) findViewById(R.id.editText); 
     btnOk = (Button) findViewById(R.id.button2); 
star = (ImageButton) findViewById(R.id.imageButton); 
     btnOk.setOnClickListener(this); 
     star.setOnClickListener(this); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_result, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.button2: 

      intent.putExtra("task", etName.getText().toString()); 

      setResult(RESULT_OK, intent); 
      finish(); 
       break; 
      case R.id.imageButton: 
       if (bIcon) { 
        star.setImageResource(R.drawable.star1); 
        grup = "top"; 

       } 
       else 

       { 
        star.setImageResource(R.drawable.star); 
        grup = null; 
       } 
       intent.putExtra("grup",grup); 
       bIcon = !bIcon; 
       break; 
     } 
    } 
} 

將對DBAdapter(不是全部,完全不工作只是事情):

public Cursor ifTopViews() { 
     String where = KEY_GRUPS+"="+ "top"; 
     Cursor c = db.query(true, DATABASE_TABLE, ALL_KEYS, where, null, null, null, null, null); 
     if (c != null) { 
      c.moveToFirst(); 
     } 
     return c; 
    } 

錯誤:

06-15 20:47:26.487  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:47:26.497 7684-7684/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:32.714  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:47:33.094 7726-7726/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:35.477  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:47:35.998  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 9 to 15 
06-15 20:47:38.750 19244-19294/? E/ExternalAccountType﹕ Unsupported attribute readOnly 
06-15 20:47:39.111 7808-7808/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:39.361 19244-19294/? E/ExternalAccountType﹕ Unsupported attribute readOnly 
06-15 20:47:39.631 7824-7824/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:39.772 7838-7838/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:39.882 1231-1231/? E/NetworkScheduler.SchedulerReceiver﹕ Invalid parameter app 
06-15 20:47:39.882 1231-1231/? E/NetworkScheduler.SchedulerReceiver﹕ Invalid package name : Perhaps you didn't include a PendingIntent in the extras? 
06-15 20:47:40.122 7868-7868/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:40.172 7868-7868/? E/dalvikvm﹕ Could not find class 'android.app.Notification$Action$Builder', referenced from method b.a 
06-15 20:47:40.192 7868-7868/? E/dalvikvm﹕ Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method b.a 
06-15 20:47:40.282 7868-7868/? E/dalvikvm﹕ Could not find class 'android.app.Notification$Action$Builder', referenced from method b.a 
06-15 20:47:40.302 7868-7868/? E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method b.a 
06-15 20:47:40.302 7868-7868/? E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method b.a 
06-15 20:47:40.312 7868-7868/? E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method b.a 
06-15 20:47:40.342 7868-7868/? E/dalvikvm﹕ Could not find class 'android.app.RemoteInput[]', referenced from method b.a 
06-15 20:47:40.352 7868-7868/? E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method b.b 
06-15 20:47:40.392  631-660/? E/power﹕ Can not write CPU_PERF_LEVEL_LOCK. (Invalid argument) 
06-15 20:47:40.542 7887-7887/com.example.user.campus E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:40.663  631-993/? E/Surface﹕ Invalid SurfaceControl 
06-15 20:47:40.903 7907-7907/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:41.634 7937-7937/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:41.704 7951-7951/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:41.794 7966-7966/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:42.004 7983-7983/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:42.184  904-1051/? E/Prism.WidgetManager﹕ The same lists. No need to update. skip it. 
06-15 20:47:42.314 8009-8009/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:42.384  631-660/? E/power﹕ request perf lock level(0) is invalid. (Invalid argument) 
06-15 20:47:42.494 8032-8032/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:42.575 1231-1231/? E/NetworkScheduler.SchedulerReceiver﹕ Invalid parameter app 
06-15 20:47:42.575 1231-1231/? E/NetworkScheduler.SchedulerReceiver﹕ Invalid package name : Perhaps you didn't include a PendingIntent in the extras? 
06-15 20:47:42.695 8048-8048/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:42.775 8066-8066/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:43.015 1231-1231/? E/AuthorizationBluetoothService﹕ Proximity feature is not enabled. 
06-15 20:47:43.225 7887-7887/com.example.user.campus E/SQLiteLog﹕ (1) no such column: top 
06-15 20:47:43.235 7887-7887/com.example.user.campus E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    android.database.sqlite.SQLiteException: no such column: top (code 1): , while compiling: SELECT DISTINCT _id, task, date, grup FROM mainToDo WHERE grup=top 
      at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 
      at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:909) 
      at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:520) 
      at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 
      at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) 
      at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37) 
      at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:65) 
      at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1370) 
      at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1217) 
      at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1088) 
      at com.example.user.campus.DBAdapter.ifTopViews(DBAdapter.java:101) 
      at com.example.user.campus.MainActivity.ifTop(MainActivity.java:127) 
      at com.example.user.campus.MainActivity.onClick(MainActivity.java:91) 
      at android.view.View.performClick(View.java:4231) 
      at android.view.View$PerformClick.run(View.java:17537) 
      at android.os.Handler.handleCallback(Handler.java:725) 
      at android.os.Handler.dispatchMessage(Handler.java:92) 
      at android.os.Looper.loop(Looper.java:158) 
      at android.app.ActivityThread.main(ActivityThread.java:5751) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:511) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1083) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850) 
      at dalvik.system.NativeStart.main(Native Method) 
06-15 20:47:43.245  631-659/? E/EmbeddedLogger﹕ App crashed! Process: com.example.user.campus 
06-15 20:47:43.245  631-659/? E/EmbeddedLogger﹕ App crashed! Package: com.example.user.campus v1 (1.0) 
06-15 20:47:43.245  631-659/? E/EmbeddedLogger﹕ Application Label: Campus 
06-15 20:47:43.786  631-1441/? E/Surface﹕ Invalid SurfaceControl 
06-15 20:47:43.916 8093-8093/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:47:44.006  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 15 to 3 
06-15 20:47:44.537  631-702/? E/InputDispatcher﹕ channel '42eafd38 com.example.user.campus/com.example.user.campus.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 
06-15 20:47:45.017  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 3 to 9 
06-15 20:47:53.867  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:47:54.027  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 9 to 15 
06-15 20:47:57.130  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:48:00.113  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:48:02.966  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:48:04.047  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 15 to 3 
06-15 20:48:04.938  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:48:05.049  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 3 to 102 
06-15 20:48:49.336  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:48:52.830  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:48:52.850 8256-8256/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:48:56.393  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:48:56.523  235-235/? E/AudioPolicyManagerBase﹕ getOutput() IOProfile is null. 
06-15 20:48:56.523  235-235/? E/AudioPolicyManagerBase﹕ getOutput() IOProfile is null. 
06-15 20:48:56.523  235-235/? E/AudioPolicyManagerBase﹕ getOutput() IOProfile is null. 
06-15 20:48:56.523  235-235/? E/AudioPolicyManagerBase﹕ getOutput() IOProfile is null. 
06-15 20:48:57.585  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:48:58.886  235-8300/? E/MP3Extractor﹕ Unable to resync. Signalling end of stream. 
06-15 20:49:00.117  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:49:35.605  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:49:37.577  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:49:38.218  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 102 to 9 
06-15 20:49:38.228  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:49:42.833  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:49:43.233  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 9 to 3 
06-15 20:49:44.935  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:49:45.235  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 3 to 15 
06-15 20:49:45.686  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:49:46.237  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:49:51.402  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:49:52.253  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 15 to 9 
06-15 20:49:58.329  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:49:59.260  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 9 to 15 
06-15 20:50:05.918  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:50:06.268  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 15 to 9 
06-15 20:50:06.368  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:50:37.101 8611-8611/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:50:37.111  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:50:37.371 8640-8640/? E/Trace﹕ error opening trace file: No such file or directory (2) 
06-15 20:50:39.193  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:50:39.333  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 9 to 15 
06-15 20:50:39.543  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:50:43.428  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:50:51.756  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:50:52.357  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 15 to 3 
06-15 20:50:53.709  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:50:54.359  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 3 to 102 
06-15 20:51:47.676  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:51:52.701  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:52:00.109  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:52:43.095  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:52:43.576  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 102 to 3 
06-15 20:52:44.577  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 3 to 9 
06-15 20:53:54.812  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:53:55.723  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 9 to 3 
06-15 20:53:56.343  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:53:56.714  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 3 to 15 
06-15 20:54:03.021  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:54:03.731  223-271/? E/ThermalDaemon﹕ ril.data.radio_tech prop: change from 15 to 9 
06-15 20:55:37.702  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 
06-15 20:56:00.105  223-265/? E/ThermalDaemon﹕ CPU1 Max freq recover to 1188000 

回答

2

在查詢 - SELECT DISTINCT _i d,任務,日期,grup FROM mainToDo WHERE grup = top - 引用文本值時不使用引號(頂部)。它應該在引號之間,否則SQL不會將其識別爲字符串值。

正確的查詢:SELECT DISTINCT _id,task,date,grup FROM mainToDo WHERE grup ='top';

在你的結果類用途:

if (bIcon) { 
    star.setImageResource(R.drawable.star1); 
    grup = "'top'"; 

} 
+0

非常感謝你! –

相關問題