2017-02-23 44 views
1

我正在使用sqlite數據庫,我被遊標卡住,我無法弄清楚這個錯誤,這裏是它在Logcat中顯示的完整錯誤。我的Android代碼的光標級錯誤

問題:java.lang.IllegalStateException:無法從CursorWindow讀取第0行,第1列。在從中訪問數據之前,確保Cursor已正確初始化。

和我的代碼是這樣的:

​​

這裏是我的主要活動代碼:

public class MainActivity extends AppCompatActivity { 

    EditText inputBox; 
    EditText inputNameBox; 
    TextView display; 
    dbHelper myHelper; 


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

     inputBox =(EditText)findViewById(R.id.inputBox); 
     inputNameBox=(EditText)findViewById(R.id.inputName); 
     display=(TextView) findViewById(R.id.display); 
     myHelper=new dbHelper(this, null, null, 1); 
     printDatabase(); 

    } 

    public void printDatabase(){ 
     String dbString=myHelper.dataBaseToString(); 
     display.setText(dbString); 
     inputBox.setText(""); 
     inputNameBox.setText(""); 
    } 



    public void addOnclick(View view) { 
     Job job=new Job(inputBox.getText().toString(),inputNameBox.getText().toString()); 

     myHelper.addJob(job); 
     printDatabase(); 
    } 

    public void deleteOnClick(View view) { 
     String input=inputBox.getText().toString(); 
     myHelper.deleteJob(input); 
     printDatabase(); 
    } 
} 

,這裏是我的其他類的工作:

public class Job { 

    private int _id; 
    private String jobName; 
    private String description; 


//empty constructor 
    public Job() { 

    } 

    public Job(String name) 
    { 
     this.jobName=name; 
    } 

    public Job(String name,String description) { 
     this.jobName=name; 
     this.description = description; 
    } 


    public Job(int id,String name, String description) { 
     this._id = id; 
     this.jobName=name; 
     this.description = description; 
    } 

    public String getName() { 
     return jobName; 
    } 

    public void setName(String name) { 
     this.jobName = name; 
    } 

    public int getId() { 
     return _id; 
    } 

    public void setId(int id) { 
     this._id = id; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 
} 
+1

有任何行號登錄? –

回答

0

你」在您創建的查詢中缺少逗號:

COLUMN_NAME +" Text, "+ 

這樣的列不存在這就是爲什麼getColumnIndex將返回-1

我也建議你使用可變COLUMN_NAME,而不是硬編碼"name"

+0

我剛剛修正了你所說的,但它仍然一直顯示相同的錯誤 – Luis3506

+0

你清除了數據嗎?您將需要爲onCreate()再次調用並重新定義表。 – Jahnold

+0

清除數據是什麼意思? – Luis3506