【发布时间】:2013-12-22 13:48:40
【问题描述】:
我花了一天的时间来看看发生了什么。在一节课中,我有一个简单的列表视图,有多项选择。最后将每个选项放入 String 数组并分享给下一个班级。
SparseBooleanArray checked = listView.getCheckedItemPositions();
ArrayList<String> selectedItems = new ArrayList<String>();
for (int i = 0; i < checked.size(); i++) {
// Item position in adapter
int position = checked.keyAt(i);
// Add sport if it is checked i.e.) == TRUE!
if (checked.valueAt(i))
selectedItems.add(adapter.getItem(position));
}
String[] outputStrArr = new String[selectedItems.size()];
for (int i = 0; i < selectedItems.size(); i++) {
outputStrArr[i] = selectedItems.get(i);
}
Intent intent = new Intent(getApplicationContext(),
ReadComments.class);
// Create a bundle object
Bundle b = new Bundle();
b.putStringArray("selectedItems", outputStrArr);
// Add the bundle to the intent.
intent.putExtras(b);
// start the ResultActivity
startActivity(intent);
在 ReadComments 类中我做了简单的方法:
public String[] tablica(){
Bundle b = getIntent().getExtras();
String[] resultArr = b.getStringArray("selectedItems");
return resultArr;
}
这会带回我的数据。当我把它放到同一个类的另一个方法中时:
String resultArr[] = tablica();
int x = 0;
for (Map<String, String> mListaMar : mListaMarketow) {
lat = mListaMar.get(TAG_SZER);
longi = mListaMar.get(TAG_DLUG);
name = mListaMar.get(TAG_MARKET);
x=0;
for (x = 0; x < resultArr.length; x++) {
if (resultArr[x] == name) {
ustawMape();
}}}
UstawMape() 方法负责在谷歌地图上显示标记。我的问题是一个逻辑问题,因为一切正常,但 ustawMape() 方法应该显示许多标记,而现在它只显示一个(ustawMape() 的构造是可以的,因为没有 for 循环它可以工作)。线索是非常简单的第一个循环,用于从 JSON 中获取数据,第二个循环应该过滤并仅显示用户在 listView 中选择的内容。 PLZ帮助我的人!
【问题讨论】:
标签: android android-layout android-intent android-listview