我有一个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中?非常感谢。
答案 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
方法