我有两项活动。
第一个活动包含一个填充的ListView小部件:
String products[] = {"Pull Restaurant names here", "Res. 1", "Res abc", "Res foo", "Res hello",
"Res xyz", "Res test", "Res test2", "Denny's"};
lv = (ListView) findViewById(R.id.listView);
// Adding items to listview
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, products);
lv.setAdapter(adapter);
用户从列表中选择一个项目后,我会加载一个新的活动:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
android.content.Intent intent = new android.content.Intent(GuestPage.this, RestaurantProfile.class);
startActivity(intent);
}
});
我希望能够将ListView中的选定项字符串存储到全局变量中。我有一个扩展应用程序的Global类,我在清单中包含了必要的名称标签。我正在使用类似的东西:
Globals g = (Globals)getApplication();
g.setData(String s);
以设置全局变量。
我的问题是存储选定的ListView项目,因为我不知道如何调用它。我没有使用任何xml项目文件来填充我的ListView。我如何知道选择了哪个项目以及如何将其存储到我的全局变量中?
例如:用户选择“Res foo”。加载了新活动,我有一个全局变量,可以在包含字符串“Res foo”的所有活动中使用。 感谢。
答案 0 :(得分:1)
你对Globals的所作所为是一种非常糟糕的做法。相反,看看这个解决方案在活动之间传递数据。
https://stackoverflow.com/a/7325248/3474528
要获取所选字符串,您需要执行以下操作:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String selected = products[position];
....
}
答案 1 :(得分:0)
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> myAdapter, View myView, int myItemInt, long mylng) {
String selectedFromList = (String) (lv.getItemAtPosition(myItemInt));
android.content.Intent intent = new android.content.Intent(GuestPage.this, RestaurantProfile.class);
startActivity(intent);
}
});
我希望这能解决你的问题:)
答案 2 :(得分:0)
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
int position保存在ListView中单击的项目的索引。
然后您可以使用该位置获取文本:
String theText = (ListView)parent.getItemAtPosition(position);