Android: 将选定的 ListView 项存储在全局变量中
Android: Storing selected ListView item in global variable
我有两个活动。
第一个 activity 包含填充如下的 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);
一旦用户从列表中选择了一个项目,我就会加载一个新的 activity 这样的:
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 中的所选项目字符串存储到全局变量中。我有一个扩展应用程序的全局 class,我在我的清单中包含了必要的名称标签。我正在使用类似于:
Globals g = (Globals)getApplication();
g.setData(String s);
为了设置全局变量。
我的问题是存储选定的 ListView 项目,因为我不知道如何调用它。我没有使用任何 xml 项文件来填充我的 ListView。我如何知道选择了哪个项目以及如何将其存储到我的全局变量中?
例如:用户选择 "Res foo"。新 activity 已加载,我有一个全局变量可在包含字符串 "Res foo" 的所有活动中使用。
谢谢
您对 Globals 所做的是一种非常糟糕的做法。相反,看看这个用于在活动之间传递数据的解决方案。
要获取选定的字符串,您需要执行如下操作:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String selected = products[position];
....
}
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);
}
});
我希望这能解决你的问题:)
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
int position 保存在 ListView 中点击的项目的索引。
然后您可以使用该位置获取文本:
String theText = (ListView)parent.getItemAtPosition(position);
我有两个活动。
第一个 activity 包含填充如下的 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);
一旦用户从列表中选择了一个项目,我就会加载一个新的 activity 这样的:
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 中的所选项目字符串存储到全局变量中。我有一个扩展应用程序的全局 class,我在我的清单中包含了必要的名称标签。我正在使用类似于:
Globals g = (Globals)getApplication();
g.setData(String s);
为了设置全局变量。
我的问题是存储选定的 ListView 项目,因为我不知道如何调用它。我没有使用任何 xml 项文件来填充我的 ListView。我如何知道选择了哪个项目以及如何将其存储到我的全局变量中?
例如:用户选择 "Res foo"。新 activity 已加载,我有一个全局变量可在包含字符串 "Res foo" 的所有活动中使用。 谢谢
您对 Globals 所做的是一种非常糟糕的做法。相反,看看这个用于在活动之间传递数据的解决方案。
要获取选定的字符串,您需要执行如下操作:
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String selected = products[position];
....
}
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);
}
});
我希望这能解决你的问题:)
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
int position 保存在 ListView 中点击的项目的索引。
然后您可以使用该位置获取文本:
String theText = (ListView)parent.getItemAtPosition(position);