2011-05-05 123 views
0

我一直在阅读关于这个几个小时的东西,仍然没有想出如何做到这一点。微调选定项目

我设法从光标读取数据库中填充微调器,现在我试图让微调器上的选定项目帮助填充列表视图。

这里是我的代码:

Cursor cursorpf = DatabaseHelper.getPFunc(); 
    startManagingCursor(cursorpf); 

    Spinner spinnerpf = (Spinner) findViewById(R.id.spinner1); 

    String[] frompf = new String[] { "Designacao" }; 
    int[] topf = new int[] { android.R.id.text1 }; 

    SimpleCursorAdapter scaPFunc = new SimpleCursorAdapter(this, 
      android.R.layout.simple_spinner_item, cursorpf, frompf, topf); 
    scaPFunc 
      .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    spinnerpf.setAdapter(scaPFunc); 
    spinnerpf.setOnItemSelectedListener(new MyOnItemSelectedListener()); 
    final String stringpf = MyOnItemSelectedListener.getSelected(); 
      long id = spinnerpf.getSelectedItemId(); 
    String stringpf = String.valueOf(id); 
    DatabaseHelper.setPF(stringpf); 

MyOnItemSelectedListener类:

public class MyOnItemSelectedListener implements OnItemSelectedListener { 

private static String selected = ""; 

public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {   

    selected = String.valueOf(id); 
Toast.makeText(parent.getContext(), "Escolha: " + selected, Toast.LENGTH_LONG).show(); 


} 

@SuppressWarnings("unchecked") 
public void onNothingSelected(AdapterView parent) { 
    // Do nothing. 
} 

}

这一类的祝酒返回光标位置。现在,我知道我必须将它与数据库进行比较才能获得我想要的值,但我无法做到。你能帮我解决吗?

在此先感谢。

编辑: 伙计们,你会帮我吗? 我设法通过实现上面的代码来获得选定的项目,但它恰巧是在应用程序启动时才填充listview。当我在微调器上选择一些东西时,没有任何反应。 :|

+0

如果没有人在我回家之前看过这个,我会帮助你出 – Klaus 2011-05-05 13:50:28

+0

谢谢克劳斯! :) – 2011-05-05 14:01:44

回答

0

如果你想要从数据库中选择项目,只是通过的onItemSelectedid)第四个参数为您的SQL查询。这是该记录的行ID,又名_ID

+0

我已经将它传递给查询。问题是我正在传递值而不是光标位置。我怎样才能做到这一点? – 2011-05-05 14:01:34

+0

对不起,我没有得到你。 'onItemSelected'具有光标位置(3d arg)和行ID(第四个)。你还需要什么? – ernazm 2011-05-05 14:14:09

+0

我想我明白我必须做的事情。但是现在,由于某种原因,我设法从MyOnItemSelectedListener类中调用get方法,但字符串没有收到任何东西。想想我今天就休息一下...... – 2011-05-05 15:34:21

相关问题