0

데이터베이스의 데이터 중 listviewfragments에 표시하려고합니다. 그래서 데이터베이스에 테이블을 추가했습니다. 이제 데이터 어댑터를 만들려고합니다.어레이 어댑터가 안드로이드 데이터베이스의 데이터 값이 아닌 필드 값을 표시하고 있습니다.

public List<Label> getAllLabels(){ 

List<Label> labels = new ArrayList<Label>(); 

// Select All Query 
String selectQuery = "SELECT * FROM " + TABLE_LABELS; 

SQLiteDatabase db = this.getReadableDatabase(); 
Cursor cursor = db.rawQuery(selectQuery, null); 

// looping through all rows and adding to list 
if (cursor.moveToFirst()) { 
    do { 
     Label label = new Label(); 
     label.setId(cursor.getInt(0)); 
     label.setName(cursor.getString(1)); 
     label.setLatitude(cursor.getDouble(2)); 
     label.setLongitude(cursor.getDouble(3)); 
     labels.add(label); 
    } while (cursor.moveToNext()); 
} 

// closing connection 
cursor.close(); 
db.close(); 

// returning lables 
return labels; 
} 
:

[email protected] 
    [email protected] 
    [email protected] 
    [email protected] 

이() 함수 내 코드에 사용 getAllLabels 인이 함유 필드 값이없는 데이터 값의 제 출력

list=(ListView)rootView.findViewById(R.id.listView1); 
try{ 
DatabaseHandler db = new DatabaseHandler(getActivity()); 
List<Label> allLabel = db.getAllLabels(); 
for (Label label : allLabel) { 
ArrayAdapter<Label> dataadapter= new ArrayAdapter<Label>(getActivity(),android.R.layout.simple_list_item_1,allLabel); 
list.setAdapter(dataadapter); 

list.setOnItemClickListener(new OnItemClickListener() { 

    public void onItemClick(AdapterView<?> parent,View v, int position,long id) 
    { 
     Toast.makeText(getActivity(), ((TextView)v).getText(), Toast.LENGTH_LONG).show(); 

    } 
}); 
} 
} 
catch (Exception e) 
{ 
    e.printStackTrace(); 
} 

: 여기 내 코드

데이터베이스 값을 얻으려면 어떻게해야합니까? 제발 도와주세요.

답변

0

문자열로 커서 데이터를 추가 및 호출 기능 조각에 해당 문자열이 그 해결 덧붙였다. 마지막으로 어댑터에 해당 배열을 보여주는

String name=cursor.getString(0)+"\n"+cursor.getString(1)+"\n"+cursor.getString(2)+"\n"+cursor.getString(3); 
       FindPeopleFragment.ArrayofName.add(name); 

가 완료 :

ArrayAdapter<String> dataadapter= new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,ArrayofName); 
0

레이블 클래스의 toString() 메서드를 재정의합니다. 클래스에 변수 '이름'이 있다고 가정합니다.

class Label{ 
    // other variables. 

    @Override 
    public String toString() { 
     return name; 
    } 
} 

업데이트 :

변경 onItemclick 리스너

list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

    public void onItemClick(AdapterView<?> parent,View v, int position,long id) 
    { 
     Label label = (Label)parent.getItemAtPosition(position); 
     Toast.makeText(getActivity(), "" + label.toString(), Toast.LENGTH_LONG).show(); 

    } 
}); 
+0

내 Label 클래스에서 한 여기에 코드입니다. – Projucti

+0

내 업데이트를 확인하십시오 –

+0

제안 해 주셔서 감사합니다 :) – Projucti