嗨,德国最好,
有阵列问题。
我有一组包含2组数据(数据1(a,b,c),数据2(d,e,f))。
现在我想提取" d"和#34; e",在获得信息" f"。
我的代码:
public class MapsActivity extends FragmentActivity {
[...]
class Data {
public Data(int category,
String quality,
String title,
String snippet,
float lng,
float lat,
String homepage,
String phonenumber,
float distance,
float duration
)
{
super();
this.category = category;
this.quality = quality;
this.title = title;
this.snippet = snippet;
this.lng = (float)lng;
this.lat = (float)lat;
this.homepage = homepage;
this.phonenumber = phonenumber;
this.distance = (float) distance;
this.duration = (float) duration;
}
int category;
String quality;
String title;
String snippet;
float lng;
float lat;
String homepage;
String phonenumber;
float distance;
float duration;
}
Data[] data = {
new Data(1,
"***",
"title1",
"snippet1",
0.0f,
0.0f,
"http://www.something.something",
"tel:+00000000",
0,0),
new Data(1,
"***",
"title2",
"snippet2",
0.0f,
0.0f,
"http://www.something.something",
"tel:+00000000",
0,0),
/**
new Data(1, -79.402206f,43.657688f, "College St",
"Lots of discount computer stores if you forgot a cable or need to buy hardware."),
new Data(1, -79.390381f,43.659878f, "Queens Park Subway",
"Quickest way to the north-south (Yonge-University-Spadina) subway/metro line"),
new Data(1, -79.403732f,43.666801f, "Spadina Subway",
"Quickest way to the east-west (Bloor-Danforth) subway/metro line"),
new Data(1, -79.399696f,43.667873f, "St George Subway back door",
"Token-only admittance, else use Spadina or Bedford entrances!"),
new Data(1, -79.384163f,43.655083f, "Eaton Centre (megamall)",
"One of the largest indoor shopping centres in eastern Canada. Runs from Dundas to Queen."),
*/
};
@Override
protected void onCreate(Bundle savedInstanceState) {
[...]
// 8. when the infowindow ist clicked
myMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
String titleOfClickedMarker = marker.getTitle();
Toast.makeText(getApplicationContext(),titleOfClickedMarker, Toast.LENGTH_SHORT).show();
// HERE I NEED HELP: I now have the title (for example title 1), and now the Point: HOW DO I GET THE OTHER INFORMATION OF THE "TITLE1" data set (e.g. snippet 1, etc.).
}
}
);
}
我很感激每一个帮助,即使很短暂。
答案 0 :(得分:1)
假设您正在使用Java,而不是将所有Data
实例存储在数组中,您可以考虑将它们存储在HashMap
中。基本上,您的data
实例现在变为:
class Data{
/* etc... */
public String getText(){
return this.title;
}
}
Data data1 = new Data(1, "***", "title1", "snippet1",
0.0f, 0.0f, "http://www.something.something",
"tel:+00000000", 0,0);
Data data2 = new Data(1, "***", "title2", "snippet2",
0.0f, 0.0f, "http://www.something.something",
"tel:+00000000",
0,0);
/* etc... */
HashMap<String, Data> hashMap = new HashMap<String, Data>();
for(int i = 0; i < dataCount; i++) // add data instances in a loop. Define your own dataCount
hashMap.add(data.getTitle(), data);
/* etc... */
myMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
String titleOfClickedMarker = marker.getTitle();
Data data = hashMap.get(titleOfClickedMarker);
/* etc.. */
}
希望这有帮助。