2014-07-05 2 views
1

이 애플리케이션에 대한 지원이 필요합니다. 안드로이드 앱에 데이터베이스를 삽입하고 싶습니다. 내 테이블에는 3 열 (_id, 제목, 텍스트)이 있습니다. 앱의 첫 번째 페이지는 목록보기에서 제목을 표시하지만 목록에서 항목을 클릭하면 다른 활동에 텍스트가 표시됩니다. 지금까지의 방법은 이렇습니다. (이 프로젝트를 온라인에서 찾았으며 수정했습니다.)android에 사전 입력 된 데이터베이스

package com.softeq.prepopdb.activity; 

import java.util.ArrayList; 

import android.app.ListActivity; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 
import com.softeq.android.prepopdb.R; 
import com.softeq.prepopdb.dbhelper.ExternalDbOpenHelper; 

public class PrepopSqliteDbActivity extends ListActivity { 
private static final String DB_NAME = "schymn.sqlite"; 
private static final String TABLE_NAME = "Hymns"; 
private static final String Hymn_ID = "_id"; 
private static final String Hymn_Title = "Title"; 
private static final String Hymn_Text = "Text"; 
    String lyrics; 

private SQLiteDatabase database; 
private ListView listView; 
private ArrayList<String> Songs; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    ExternalDbOpenHelper dbOpenHelper = new ExternalDbOpenHelper(this, DB_NAME); 
    database = dbOpenHelper.openDataBase(); 

    fillHymns(); 
    setUpList();  
} 

private void setUpList() { 

    setListAdapter(new ArrayAdapter<String>(this, 
        android.R.layout.simple_list_item_1, Songs)); 
    listView = getListView(); 


    /*listView.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
          int position,long id) { 
      Toast.makeText(getApplicationContext(), 
         ((TextView) view).getText().toString(), 
         Toast.LENGTH_SHORT).show();     
     } 
    });*/ 

    listView.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
          int position,long id) { 

     } 
    }); 
} 


private void fillHymns() { 
    Songs = new ArrayList<String>(); 
    Cursor hymnCursor = database.query(TABLE_NAME, 
             new String[] 
             {Hymn_ID, Hymn_Title,Hymn_Text}, 
             null, null, null, null 
             , Hymn_Title); 
    hymnCursor.moveToFirst(); 
    if(!hymnCursor.isAfterLast()) { 
     do { 
      String title = hymnCursor.getString(1); 
      lyrics = hymnCursor.getString(2); 
      Songs.add(title); 
      //Songs.add(lyrics); 
     } while (hymnCursor.moveToNext()); 
    } 
    hymnCursor.close(); 
} 
} 

시도했지만 작동하지 않았습니다.

listView.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
          int position,long id) { 
         Log.i("text",lyrics); 
     } 
    }); 
} 
+0

'Log.i ("text", 가사)'가 다른 활동을 생성하기로되어 있습니까? 'startActivity' 메쏘드를보십시오. – m0skit0

+0

noo, 제목과 관련된 텍스트를 기록한다고 가정합니다. 나는 엑스트라를 의도적으로 전달하는 법을 안다. – olakunle

+0

예외가 발생하고 있습니까? 로그 기록은 무엇입니까? – joao2fast4u

답변

0

고마워 Guys 나는 어댑터를 만들고 키 값 쌍에 세부 정보를 저장하여 문제를 해결할 수있었습니다.

관련 문제