2013-07-04 3 views
2

나는 안드로이드를 처음 접하기 때문에 문제가 생겼다.
이것은 내 주요 클래스이며 단순히 데이터를 삽입하고 데이터를 Logcat에 표시하기 만하면됩니다. ListView에 새로운 활동으로 데이터를 표시하려고합니다. 이제 커서에서 데이터를 가져와 ListView에 표시하는 방법을 얻지 못하고 있습니다. view.xml & view.java에 데이터를 표시하도록 설정했지만 해당 활동에 데이터를 표시하는 방법을 모르겠습니다. 어댑터 클래스, cursoradapter 또는 flater 등을 만들어야합니까 (다음 단계를 알고 싶습니다). 사전에커서에서 목록보기로 데이터를 표시하는 방법

감사합니다 :)

메인 클래스

public class main extends Activity { 

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

    } 



    public void database_add() { 

    try{ 
     Database_handler db = new Database_handler(this); 

     Log.d("Insert: ", "Inserting .."); 

     db.addData(new get_set(131,"A-Lucy")) ; 
     db.addData(new get_set(132,"A-kk")) ; 
     db.addData(new get_set(133,"A_Tweety")) ; 
     db.addData(new get_set(134,"A-Naruto")) ; 
     Log.d("Reading: ", "Reading all contacts.."); 


    List<get_set> getSetList = db.getalldata(); 
     for(get_set set : getSetList){ 
      String log = "CODEE: " + set.getCode() + ", Description: " + set.getDescr(); 
      Log.d("CODE: ", log); 
     } 

여기 내 데이터베이스 핸들러 클래스는 데이터를 검색, 삽입 기능을 가진 일부 코드입니다.

database_add() 함수에서

public class Database_handler extends SQLiteOpenHelper { 

private static final int DATABASE_Version = 1; 
private static final String DATABASE_Name = "android_db"; 
private static final String TABLE_Name = "all_data"; 

private static final String Column_Name_code = "code"; 
private static final String Column_name_desc = "description"; 
private SQLiteDatabase db; 

Database_handler(Context cont){ 
    super(cont,DATABASE_Name,null,DATABASE_Version); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 

    String CREATE_TABLE_ANDRO = " CREATE TABLE " + TABLE_Name + "(" + Column_Name_code + " INTEGER PRIMARY KEY , " 
      + Column_name_desc + " TEXT)"; 
    db.execSQL(CREATE_TABLE_ANDRO); 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int Older_version, int new_version) { 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_Name); 
    onCreate(db); 
} 
// Inserting record 
    public void addData (get_set getSet){ 
     SQLiteDatabase db = this.getReadableDatabase(); 

     ContentValues cv = new ContentValues(); 
     cv.put (Column_Name_code, getSet.getCode()); 
     cv.put(Column_name_desc, getSet.getDescr()); 
     db.insert(TABLE_Name,null,cv); 
     db.close(); 
    } 

    Retrieving data 
    public List<get_set> getalldata(){ 
     List<get_set> data_list = new ArrayList<get_set>(); 

     String select_query = "SELECT * FROM " + TABLE_Name; 

     SQLiteDatabase db = this.getReadableDatabase(); 
     Cursor cur = db.rawQuery(select_query,null); 

     if (cur.moveToFirst()){ 
      do { 
       get_set getsetObj = new get_set(); 
       getsetObj.setCode(Integer.parseInt(cur.getString(0))); 
       getsetObj.setDescr(cur.getString(1)); 
       data_list.add(getsetObj); 
      } while (cur.moveToNext()); 
     } 
     return data_list; 
    } 

답변

1

데이터베이스 핸들러 클래스, 데이터베이스에 데이터를 삽입 한 후, 다음 활동에 대한 의도를 호출합니다. 이 새로운 활동에서 getalldata() 함수를 호출하십시오. 목록에 의해 이미 반환 된 경우, 아래 튜토리얼에 따라 ArrayList의 List 유형과 ArrayList의 String 유형을 사용하십시오. 그것은 매력처럼 작동합니다. 메인 스레드에서 무거운 데이터베이스 트랜잭션을 싶지 않는 때문에

http://www.vogella.com/articles/AndroidListView/article.html

또한, 난 당신이 db.getalldata을 포함하는 AsyncTask를 내부() 함수를 건의 할 것입니다.

+0

@madhu에게 감사드립니다. 링크가 도움이되었습니다. –

+0

@AdnanMushtaq : 환영합니다. – madhu

관련 문제