传递Listview OnClick以从DB获取数据

时间:2012-11-29 08:56:12

标签: sqlite listview

我有一个ListView,它显示静态数据和图像(比如活动A)。当我单击ListVoew项时,数据被捕获并传递到下一个Activity(我们称之为Activity B)。在活动B中,我想将所选值传递给DB select where子句并获取数据并显示与选择有关的相关信息。这是我的代码片段......

活动A

String subproduct = ((TextView) view.findViewById(R.id.product_label)).getText().toString();
                      // Launching new Activity on selecting single List Item

                      SharedPreferences sharedPreferences = getSharedPreferences("pref",MODE_WORLD_READABLE);
                      SharedPreferences.Editor editor = sharedPreferences.edit();
                      editor.clear();
                      editor.putString("subproduct", subproduct);
                      editor.commit();
                      Intent myIntent = new Intent(getApplicationContext(),Details.class);                 
                      startActivity(myIntent);

这是我的活动B enter code here

public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.details1);

SharedPreferences myPrefs = this.getSharedPreferences("pref", MODE_WORLD_READABLE); 
String subproduct = myPrefs.getString("subproduct","null");     
TextView txtProduct1 = (TextView) findViewById(R.id.detail_item);
txtProduct1.setText(subproduct);

这是我的 DBHelper.java 。在这里,我想传递选定的值。请帮助我如何实现这一目标......

public Cursor getData(){
        //SharedPreferences myPrefs = this.getSharedPreferences("pref", 0);
        //String subproduct = myPrefs.getString("subproduct","null");
        Cursor c = myDataBase.rawQuery("SELECT * FROM Destmain WHERE destname= " + ? + " ", null);
        while (c.moveToNext()){
            DestInfo q = new DestInfo();
            q.setDestination(c.getString(1));
            q.setCity(c.getString(2));
            q.setCountry(c.getString(3));
            q.setPeriod(c.getString(4));
            q.setType(c.getString(5));
            q.setCurrency(c.getString(6));
            q.setBriefhistory(c.getString(7));
            q.setHighlights(c.getString(8));


        }
        c.close();
        return c;

任何人都可以帮助我如何将ListView(活动A)选定值传递到获取数据库数据并显示在活动B中?非常感谢。

1 个答案:

答案 0 :(得分:0)

通过在活动A中使用方法onItemcClick,您可以获取ID并将其传递给第二个活动B.

onItemClick(AdapterView<?> adapterView, View view, int pos, long id)
newActivity.putExtra("key", id);

然后在活动B中,您可以使用此ID在数据库中进行搜索。

Intent newActivity = getIntent();
long id = newActivity.getLongExtras("key", -1);

在其他情况下,您可以使用getLunchDetails方法