2014-10-27 61 views
0

如下面的代碼所示,是否可以在列表視圖中顯示來自sqlite數據庫的以下數據而不是以下內容?在列表視圖中顯示來自sqlite數據庫的數據而不是吐司?

btnlist = (Button) findViewById(R.id.btnlist); 
    btnlist.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      handler = new Datahandler(getBaseContext()); 
      String getName, getaddress, getDate, getTime, getSchoolName; 
      getName = ""; 
      getaddress = ""; 
      getDate = ""; 
      getTime = ""; 
      getSchoolName = ""; 

      handler.open(); 
      Cursor C = handler.returnData();// return actual data from 
              // database 
      if (C.moveToFirst()) { 
       do { 
        getName = C.getString(0); 
        getaddress = C.getString(1); 
        getDate = C.getString(2); 
        getTime = C.getString(3); 
        getSchoolName = C.getString(4); 

       } while (C.moveToNext()); 
      } 
      handler.close(); 
      Toast.makeText(
        getBaseContext(), 
        " Name :" + getName + "Address :" 
          + getaddress + "Date :" + getDate + "Time :" 
          + getTime + "School :" + getSchoolNname, 
        Toast.LENGTH_LONG).show(); 
     } 
    }); 
} 
+0

只需使用'SimpleCursorAdapter'。 – 2014-10-27 16:54:41

+0

你知道該怎麼做嗎?我錯了 – user3417481 2014-10-27 17:14:08

回答

-1

是當然的可能:)

你已經做了獲取數據從數據庫中的辛勤工作。

我已經爲您製作了一個超級快速示例。顯然你需要通過閱讀一些內容並遵循一些教程來填補空白。這裏有一個良好的開端: http://www.vogella.com/tutorials/AndroidListView/article.html

http://webdeveloperpadawan.blogspot.co.uk/2014/09/android-listview-with-differing-rows.html

你需要做的是創建一個自定義對象爲您的學生的詳細信息或任何他們。然後,而不是做

字符串的getName = C.getString(0)

,你會做這樣的事情:

List<Student> students; 
Student student; 
do{ 
    student.setName(C.getString(0)); 
    ... 
    //Then you add that student into a List of students 
    students.add(student); 
} 

然後創建延伸學生的名單自定義適配器:

public class AdapterStudents extends ArrayAdapter<Student>{ 
    //... 
} 

然後你創建你的適配器的實例,最後只需將該適配器設置爲你的列表視圖。

正如我所說遵循更多的細節了幾個教程,但有你的行動的基本計劃:)

好運。

+2

對於帶有'Cursor'的數據庫數據''CursorAdapter'是更好的選擇:http://developer.android.com/reference/android/widget/CursorAdapter.html – Philio 2014-10-27 17:05:54

+0

public Cursor getDatahandlerCursor(Context context ){ \t \t SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder(); \t \t queryBuilder.setTables(TABLE_NAME); \t \t \t \t遊標cursor = queryBuilder。查詢(DATA_BASE_NAME,新的String [] { \t \t \t \t etName, \t \t \t \t etaddress, \t \t \t \t et_Date, \t \t \t \t et_time, \t \t \t \t etSchoolName}, \t \t \t \t NULL,NULL,NULL,NULL,NULL); \t \t返回遊標; \t} 我已經做了這個,但我在queryBuilder.query – user3417481 2014-10-27 18:50:13

0

按列表視圖我假設你的意思是第一行有名字,第二行有地址,第三行有日期等等?如果是這樣,我建議你實際製作10個文本視圖,5個用於標籤,5個用於數據。如果您需要滾動,您可以將它們放入滾動視圖中。一旦你有這些文本視圖調用.setText(...)5數據與數據填充他們的變量,如getName中的數據。

我說這樣做的原因是爲了保持與典型的Android設計更一致。通常,列表視圖用於顯示數據列表,其中每行顯示相同鍵(如聯繫人)的不同值。它看起來像你總是有五個數據點,所以我們不需要列表視圖的開銷,並且一組靜態的文本視圖就可以達到這個目的。

+0

錯誤,但我只想列出所有數據在列表視圖中的數據 – user3417481 2014-10-27 17:14:55

相關問題