2013-04-01 3 views
0

SQLite를 사용하여 만든 데이터베이스에 연결하려고했습니다. 난 아무런 오류가 없지만 언제든지 에뮬레이터에서 응용 프로그램을 실행하려고하면 응용 프로그램이 자동으로 시작되면 즉시 작동을 멈 춥니 다. 데이터베이스를 연결하고 데이터를 추출하고 표시하는 하나의 작업 만있는 코드가 있습니다.안드로이드 응용 프로그램이 중지되었습니다

MANIFEST :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.sampledb" 
    android:versionCode="1" 
    android:versionName="1.0" > 
    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="17" /> 
<application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.sampledb.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
    </manifest> 

을 heres 텍스트 뷰와 텍스트가 데이터베이스에서 extraxted되는 라디오 그룹이 레이아웃 파일 :

XML : 내가 텍스트 뷰 곳을 만든 다음 XML 파일에서을 나는 질문을하고 라디오 버튼과 그 텍스트를 넣고 싶습니다. 나는 선택을하고 싶습니다. 코드를 heres. 데이터베이스에서

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainScreen" > 

    <TextView 
     android:id="@+id/question" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="sample" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent"> 

    <RadioGroup 
     android:id="@+id/rg1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <RadioButton 
      android:id="@+id/radio0" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:checked="true" 
      /> 

     <RadioButton 
      android:id="@+id/radio1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      /> 

     <RadioButton 
      android:id="@+id/radio2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      /> 

      <RadioButton 
      android:id="@+id/radio3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      /> 
    </RadioGroup> 

    </LinearLayout> 

    <TextView 
     android:id="@+id/explanation" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Explanation" /> 
    </LinearLayout> 

은 내가 라디오 버튼의 텍스트로 사용하려고 질문을 가지고 몇 coloumns 및 몇 가지 선택이있다. 활동 코드 : 여기

package com.example.sampledb; 

import java.util.Locale; 
import com.example.sampledb.R; 
import android.os.Bundle; 
import android.app.Activity; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.view.Menu; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.TextView; 
public class MainActivity extends Activity { 
    TextView Question; 
    RadioGroup G1; 
    RadioButton B1, B2, B3, B4; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Question= (TextView)findViewById(R.id.question); 
     G1=(RadioGroup)findViewById(R.id.rg1); 
     B1=(RadioButton)findViewById(R.id.radio0); 
     B2=(RadioButton)findViewById(R.id.radio1); 
     B3=(RadioButton)findViewById(R.id.radio2); 
     B4=(RadioButton)findViewById(R.id.radio3); 
      SQLiteDatabase db; 
      db = openOrCreateDatabase("vocablearner.db", 
       SQLiteDatabase.CREATE_IF_NECESSARY, null); 
     db.setVersion(1); 
     db.setLocale(Locale.getDefault()); 


     Cursor cur = db.query("MainTable", null, null, null, null, null,null); 
     if (cur != null) { 
       if (cur.moveToFirst()) { 
         do { 
    String Quest = cur.getString(cur.getColumnIndex("_id")); 
    String ans1 = cur.getString(cur.getColumnIndex("C1")); 
    String ans2 = cur.getString(cur.getColumnIndex("C2")); 
    String ans3 = cur.getString(cur.getColumnIndex("C3")); 
    String ans4 = cur.getString(cur.getColumnIndex("C4")); 
    //String crt = cur.getString(cur.getColumnIndex("Ccrt")); 
    Question.setText(Quest); 
    B1.setText(ans1); 
    B2.setText(ans2); 
    B3.setText(ans3); 
    B4.setText(ans4); 

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

내가 자산 폴더에 저장되어있는 데이터베이스를 정의하는 방법 openorcreatedatabase을 사용하고 난 데이터를 추출하기 위해 커서를 사용했다.

데이터베이스 파일에서 _id는 기본 키 (질문)로 만들어지고 col1mns c1 c2 c3 c4는 이에 대한 대답입니다.

이 코드를 실행하려면 어떻게해야합니까? 데이터베이스 내용도 업로드해야합니까 ?? 그리고 안드로이드에서 데이터베이스를 사용하는 다른 방법이 있습니까?

여기 나는 자산 폴더에 저장된 데이터베이스를 정의하기 위해 openorcreatedatabase 메소드를 사용했으며 커서를 사용하여 데이터를 추출했습니다.

데이터베이스 파일에서 _id는 기본 키 (질문)로 만들어지고 col1mns c1 c2 c3 c4는 이에 대한 대답입니다.

이 코드를 실행하려면 어떻게해야합니까? 데이터베이스 내용도 업로드해야합니까 ?? 그리고 안드로이드에서 데이터베이스를 사용하는 다른 방법이 있습니까?

+2

logcat을 게시하십시오. – 323go

+1

@Arjun 전 세계 어느 지역에서 어떤 간격으로 새 단락을 시작하는 것이 일반적이지만, 여기에서는 포맷터를 완전히 혼동 할 것입니다. 그래서 다음 번에는 :하지 말고 그냥 줄의 시작 부분에 글을 쓰기 시작하십시오. – WarrenFaith

+0

SqliteOpenHelper() 사용을 고려 했습니까? 확실히 onCreate() 메서드를 정리하는 데 도움이됩니다. 또한 백그라운드 스레드에서 db 작업을 수행하는 것도 고려하십시오. Vogella에는 좋은 자습서가 있습니다. http://www.vogella.com/articles/AndroidSQLite/article.html –

답변

-1

매니페스트에 권한을 추가해야하는지 확인하세요. 외부 메모리에 쓰기와 같습니다.

+0

이것은 답변이 아닙니다. 그것은 주석이어야합니다. – Simon

+0

@Arjun Viswanathan 그것이 당신의 문제를 해결 했습니까 ?? – Sourav048

+0

내가 매니 페스트에서 권한을 변경했고 적절한 방법으로 query() 메소드를 사용하는 법을 배웠습니다.이 초보자를 도와 주신 모든 분들께 감사드립니다 :) – Sakthi

관련 문제