2013-04-01 4 views
-1

그래서 다음 코드를 가지고 있습니다. 코드는 데이터베이스에 데이터를 추가하려고 시도하고 앱을 닫지 못하면 시도합니다. 무슨 일이 있어도 앱이 닫히면 어떤 조언을 할까?안드로이드 데이터베이스가 데이터를 삽입하지 않습니다

package net.connormccarthy.walkingdeadcharacterprofiles; 

import java.util.ArrayList; 


import android.app.Activity; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.graphics.Color; 
import android.graphics.Typeface; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TableLayout; 
import android.widget.TableRow; 
import android.widget.TextView; 

public class rickAddNotes extends Activity 
{ 

SQLiteDatabase db; 




    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     // this try catch block returns better error reporting to the log 
      // Android specific calls 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.ricknotes); 
      Button btnLeft=(Button)findViewById(R.id.BtnRickSave); 


      // create the database manager object 
      //db = new MainActivity(); 


      final Button button = (Button) findViewById(R.id.BtnRickSave); 
      button.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        data(); 
       } 
      });  


    } 


    public long data() 
    { 
     long d=0; 
     //EditText edittext1=(EditText)findViewById(R.id.editText1); 
     //String notes = edittext1.toString(); 


try { 

     final String Insert_Data="INSERT INTO Characters VALUES(2,'WOOP','5')"; 
     db.execSQL(Insert_Data); 
    } catch (Exception e) { 

     System.exit(0); 

    } 
    return d; 

    } 


    public void showdata(View view) 
    { 
     Cursor c=db.rawQuery("SELECT * from Character WHERE character = rick", null); 
     int count= c.getCount(); 
     c.moveToFirst(); 
     TableLayout tableLayout = new TableLayout(getApplicationContext()); 
     tableLayout.setVerticalScrollBarEnabled(true); 
     TableRow tableRow; 
     TextView textView,textView1,textView2,textView3,textView4,textView5; 
     tableRow = new TableRow(getApplicationContext()); 
     textView=new TextView(getApplicationContext()); 
     textView.setText("Firstname"); 
     textView.setTextColor(Color.RED); 
     textView.setTypeface(null, Typeface.BOLD); 
     textView.setPadding(20, 20, 20, 20); 
     tableRow.addView(textView); 
     textView4=new TextView(getApplicationContext()); 
     textView4.setText("LastName"); 
     textView4.setTextColor(Color.RED); 
     textView4.setTypeface(null, Typeface.BOLD); 
     textView4.setPadding(20, 20, 20, 20); 
     tableRow.addView(textView4); 
     textView5=new TextView(getApplicationContext()); 
     textView5.setText("Email"); 
     textView5.setTextColor(Color.RED); 
     textView5.setTypeface(null, Typeface.BOLD); 
     textView5.setPadding(20, 20, 20, 20); 
     tableRow.addView(textView5); 
     tableLayout.addView(tableRow); 
     for (Integer j = 0; j < count; j++) 
     { 
      tableRow = new TableRow(getApplicationContext()); 
      textView1 = new TextView(getApplicationContext()); 
      textView1.setText(c.getString(c.getColumnIndex("character"))); 
      textView2 = new TextView(getApplicationContext()); 
      textView2.setText(c.getString(c.getColumnIndex("notes"))); 
      textView1.setPadding(20, 20, 20, 20); 
      textView2.setPadding(20, 20, 20, 20); 
      tableRow.addView(textView1); 
      tableRow.addView(textView2); 
      tableLayout.addView(tableRow); 
      c.moveToNext() ; 
     } 
     setContentView(tableLayout); 
    db.close(); 
    } 





} 

예외를 추가하지 않으면 응용 프로그램이 중단됩니다. 궁극적으로 내가 그것을 (editText1) 전달하는 변수와 함께 작동 시키려고하지만 심지어 날씨 코드에 따라 응용 프로그램이 충돌하거나 닫히는 경우에도 예외를 추가합니다.

도움을 주시면 대단히 감사하겠습니다. 여기에>

final String Insert_Data="INSERT INTO Characters VALUES(2,'WOOP','5')"; 

테이블 이름입니다 Characters

같이

Cursor c=db.rawQuery("SELECT * from Character WHERE character = rick", null); 

1 - SQL 문에

+1

올바르게 스크롤하여 logcat에서 스택 추적을 게시 할 필요가 없도록 코드의 형식을 지정하십시오. – Simon

+0

먼저 DB 작업을 수행하기 전에'SQLiteDatabase'의'db' 인스턴스를 초기화하지 않습니다. 두 번째 logcat 결과를 추가하면 더 많은 도움을 얻을 수 있습니다. –

답변

0

, 우리는 가능한 오류의 2 가지 유형을 볼

테이블 이름은 Character

입니다.

이 부분을 확인하십시오.

2> 당신의 선택 쿼리는해야한다 -

Cursor c=db.rawQuery("SELECT * from Character WHERE character = rick", null); 

이 있어야한다 -

Cursor c=db.rawQuery("SELECT * from Character WHERE character = 'rick'", null); 

이 2 포인터를보고하십시오. 우리는 더 이상의 의견에 당신을 도울 것입니다.

감사합니다.

+0

응답 해 주셔서 감사합니다! 나는 그 기능을 실행하기 위해 버튼을 누를 때 그 앱을 변경했다. –

+0

당신은 우리에게 logcat 예외에 대한 포인터를 줄 수 있습니까 ??? –

+2

@ConnorMcCarthy 왜 logcat에서 예외 스택 추적을 게시하라는 요청을 무시합니까? – Simon

관련 문제