2013-09-01 91 views
0

我想在我的加載按鈕的onclicklistener中使用來自sqlite的數據填充我的列表視圖。無法從數據庫使用sqlite填充列表視圖

但是,有些東西在我的代碼中不起作用。這是我的代碼。

public class TotalResults extends ListActivity { 

DatabaseManager db = new DatabaseManager(this); 
List<PlayerData> contacts; 
String name; 
int score; 
TextView result; 
TextView saved; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_total_results); 
    result = (TextView) findViewById (R.id.textResult); 
    saved = (TextView) findViewById (R.id.textLoad); 
    Button save = (Button) findViewById (R.id.buttonSave); 
    Button load = (Button) findViewById (R.id.buttonLoad); 
    Button delete = (Button) findViewById (R.id.buttonDelete); 


    contacts = db.getAllContacts(); 

    final ArrayAdapter<PlayerData> adapter = new ArrayAdapter<PlayerData>(this, 
       android.R.layout.simple_list_item_1, contacts); 
     setListAdapter(adapter); 
     Intent intent = getIntent(); 
     name = intent.getExtras().getString("name"); 
     score = intent.getExtras().getInt("score"); 

     result.setText("Name: "+name+" , Score: "+score); 

     save.setOnClickListener(new OnClickListener(){ 

      public void onClick(View v) { 

       db.addContact(new PlayerData(name,score)); 
       Log.d("Inserting: ", name); 
       Log.d("Inserting: ", Integer.toString(score)); 

      } 
     }); 



      load.setOnClickListener(new OnClickListener(){ 

       public void onClick(View v) { 


        //check to ensure there are users 

        if(contacts.size()==0) { 
         String text = "No players stored."; 
         Toast.makeText(TotalResults.this, text, Toast.LENGTH_SHORT).show(); 
        } else { 


         PlayerData player = contacts.get(0); 
         String showName = player.getName(); 
         int showScore = player.getscore(); 
         Log.d("Getting:", showName); 
         Log.d("Getting:", Integer.toString(showScore)); 
         adapter.add(player); 
         saved.setText("Player Name: "+showName+" Player Score: "+showScore); 
        } 
       } 
      }); 



      delete.setOnClickListener(new OnClickListener(){ 

       public void onClick(View v) { 

        List<PlayerData> contacts = db.getAllContacts(); 
        //check to ensure there are users 
        if(contacts.size()==0) { 
         String text = "No players to delete."; 
         Toast.makeText(TotalResults.this, text, Toast.LENGTH_SHORT).show(); 
        } else { 
         PlayerData player = contacts.get(0); 
         String showName = player.getName(); 
         int showScore = player.getscore(); 
         Log.d("Deleting:", showName); 
         Log.d("Deleting:", Integer.toString(showScore)); 
         db.deleteContact(player); 
        } 

       } 
      }); 




} 

我已經應用了setListAdapter的概念。然而,logcat應該是我從數據庫中得到一個名字和得分,但是沒有獲取數據的跡象。但插入的數據可以刪除。加載按鈕也不會在列表視圖中顯示任何東西。請幫忙。提前致謝。 :)

+0

哎@Raghunandan我試圖按照你的代碼,但是有很多方法和功能,我仍然不知道,因爲我仍然是Android的新手,所以我沒有嘗試它。有解決它的另一種方法嗎? – Jeongbebs

+0

如果有別的方法可以發佈另一種解決方案。但是你的重複你的問題是不需要的。 – Raghunandan

+0

沒問題。謝謝! – Jeongbebs

回答

0

,如果你的數據模型是sqlite的分貝最明顯的方法是使用的CursorAdapter或它的一個子類(例如SimpleCursorAdapter),不ArrayAdapter

+0

當我改變它的cursoradapter,它說cursoradapter不是通用的,它不能被參數化。 – Jeongbebs

+0

我試圖使用SimpleCursorAdapter,但eclipse說我應該刪除參數。 :( – Jeongbebs

+0

谷歌爲:SimpleCursorAdapter教程。有很多他們 – pskink