2014-04-02 35 views
0

家伙被人知道的微调获得价值指数ID,我有这样的代码,但它是错误 Akreditasi.java的Android:如何从DATABSE从微调获得索引ID

public class Akreditasi { 
private long id; 
private String name; 

public long getId() { 
    return id; 
} 
public void setId(long id) { 
    this.id = id; 
} 
public String getName() { 
    return nama; 
} 
public void setName(String name) { 
    this.name = name; 
} 
@Override 
public String toString() 
{ 
    return "ID : " + id 
      + "\n" + "Nama :"+ name; 
} 

} 

,这里是mySpinner 我试图通过这个Akreditasi到ArrayAdapter

public void onItemSelected(AdapterView<?> parent, View view, int position, 
     long id) 
        { 
      // TODO Auto-generated method stub 
      // On selecting a spinner item 
      String label = parent.getItemAtPosition(position).toString(); 
      Akreditasi mSelected = (Akreditasi) parent.getItemAtPosition(position); //in here my program is crash, it's says cannot be cast 
        long count = mSelected.getId(); 

      //set the default according to value 
      // Showing selected spinner item 
      Toast.makeText(parent.getContext(), "You Selected: " + label, 
        Toast.LENGTH_LONG).show(); 
} 

,这是我的离心方法

private void loadSpinnerData() { 
    // TODO Auto-generated method stub 
    // database handler 
    DBDataSource db = new DBDataSource(getApplicationContext()); 
    // Spinner Drop down elements 
    List<String> lables = db.getAllLabel_akreditasi(); 
    // Creating adapter for spinner 
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, lables); 

    // Drop down layout style - list view with radio button 
    dataAdapter 
      .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    // attaching data adapter to spinner 
    spinner.setAdapter(dataAdapter); 



} 

我还是不明白这个错误,谁能帮助我?感谢ü

+0

什么是你的错误 – Ranjith

+0

@Ranjith对象逻辑:它说不能被抛出,错误是代码 –

+0

上面的代码我可以看到代码,你设置微调 – Ranjith

回答

1

,因为你不知道哪个微调日子会把你使用这种方法,首先 你需要调用如下onItemSelected方法:

(your spinner).setOnItemSelectedListener(this); 

在此之后,我建议有关添加switch case下面的方法onItemSelected

public void onItemSelected(AdapterView<?> parent, View view, int position, 
     long id) 
        { 
switch (parent.getId()) { 
case R.id.(id of your spinner): 


    Akreditasi mSelected = (Akreditasi) parent.getItemAtPosition(position); 
        long count = mSelected.getId(); 
break; 
} 
} 

您的微调方法应该是这样的:

private void loadSpinnerData() { 
    DBDataSource db = new DBDataSource(getApplicationContext()); 

    List<Akreditasi> lables = db.getAllLabel_akreditasi(); 

    ArrayAdapter<Akreditasi> dataAdapter = new ArrayAdapter<Akreditasi>(this, 
      android.R.layout.simple_spinner_item, lables); 

    dataAdapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    spinner.setAdapter(dataAdapter); 
} 
+0

什么是arg0? @NenMa –

+0

@ndr_sd ops ..对不起,检查我的编辑 – Menma

+0

好吧,现在它正在工作,但计数不能得到id,你知道为什么这会发生吗? @NenMa –

0

,同时设置你的设置你只有List<String>但不List<Akreditasi>

List<String> lables = db.getAllLabel_akreditasi(); 

,你必须要设置示例代码

Akreditasi [] items = { 
       new Akreditasi (1, "Milk", 21.50), 
       new Akreditasi (2, "Butter", 15.99), 
       new Akreditasi (3, "Yogurt", 14.90), 
       new Akreditasi (4, "Toothpaste", 7.99), 
       new Akreditasi (5, "Ice Cream", 10.00), 
      }; 

      ArrayAdapter<Product> adapter = new ArrayAdapter<Product>(this, 
         android.R.layout.simple_list_item_1, items); 
// attaching data adapter to spinner 
    spinner.setAdapter(dataAdapter); 
+0

如果它帮助让我知道别的发送你的db.getAllLabel_akreditasi();也 – Ranjith