java - 使用数组列表将标记添加到 Google map 。安卓

标签 java android arrays android-maps-v2

我正在尝试将数据库中的值捕获到数组列表中。我只想获取纬度和经度来创建标记。

这是我在数据库处理程序类中的 gettemple() 函数

public ArrayList<kovil> Get_Temple(String temple_type, String Limit) {
try {
    temple_list.clear();

    // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE_TEMPLE +"WHERE KEY_TMPTYPE=" + temple_type +"LIMIT" + Limit;

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    System.out.print("CALLED");
    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
    do {
        kovil Kovil = new kovil();
        Kovil.setID(Integer.parseInt(cursor.getString(0)));
        Kovil.settemplename(cursor.getString(1)); 
        Kovil.settempletype(cursor.getString(2)); 
        Kovil.setlatitude(cursor.getString(3)); 
        Kovil.setlongitude(cursor.getString(4)); 
        Kovil.setimage_name(cursor.getString(5)); 
        Kovil.setyear_build(cursor.getString(6)); 
        Kovil.setaddress(cursor.getString(7)); 
        Kovil.setcity(cursor.getString(8)); 
        Kovil.setemail(cursor.getString(9)); 
        Kovil.setwebsite(cursor.getString(10)); 
        Kovil.settelephone1(cursor.getString(11)); 
        Kovil.settelephone2(cursor.getString(12));
        Kovil.setDescription(cursor.getString(13));

        // Adding contact to list
        temple_list.add(Kovil);
    } while (cursor.moveToNext());
    }

    // return contact list
    cursor.close();
    db.close();
    return temple_list;
} catch (Exception e) {
    // TODO: handle exception
    Log.e("all_temples", "" + e);
}

return temple_list;
}

这将返回同一类中的temple_list数组。

 private final ArrayList<kovil> temple_list = new ArrayList<kovil>();

并尝试调用 View map 类中的 Get_Temple() 函数

    dbhand.Get_Temple((getIntent().getExtras().getString("temple_type")), getIntent().getExtras().getString("notemples"));


            for (int i=0; i< Integer.parseInt(getIntent().getExtras().getString("notemples"));i++) {
                //displaytemples(9.662502, 80.010239, "mugan kovil");

            }

我正在尝试使用此类显示标记

public boolean displaytemples(double lati, double longi, String templename){

    MarkerOptions marker = new MarkerOptions().position(new LatLng(lati, longi)).title(templename);
    marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.icon));
    //marker.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
    mMap.addMarker(marker);


    return true;
}

我只想从数组列表中捕获纬度和经度,并使用 for 循环将纬度和经度传递给 displaytemples ()。

谁能帮我编写一个 for 循环,它只捕获纬度和经度并将其传递给 displaytemples() 函数。谢谢...

最佳答案

说实话,你的代码让我感到害怕......但那是不同的问题。我唯一要指出的是,不要从主线程获取数据库。您正在以这种方式阻塞 UI :( 。查看 AsyncTask 或其他一些从主线程卸载数据库操作的方法..

至于你的问题 - 你可以尝试这样的事情:

ArrayList<kovil> data = dbhand.Get_Temple(getIntent().getExtras().getString("temple_type"), 
                                          getIntent().getExtras().getString("notemples"));


for (kovil temple: data) {
    displaytemples(Double.parseDouble(temple.getlatitude(), 
                                      temple.getlongitude(), 
                                      temple.gettemplename());

}

关于java - 使用数组列表将标记添加到 Google map 。安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21722434/

相关文章:

java - Spring Data Rest 添加包中的所有投影

Java从Microsoft SQL Server准确读取日期而不指定时区

android - 在 Android 2.2 中获取单个位置更新

php - 更改php中数组中的最后一个键名

javascript - 计算每个数组项的出现次数并将结果作为对象返回

Java:如何将 3 个线性数组连接到一个 3 列的 CSV 文件中

java - touchlistener 代码错误 - Android

java - 我可以在不连接端口的情况下检查IP端口是否打开吗?

java - Spring Cloud Dataflow 类型转换在处理器组件中不起作用?

android - 斜体提示文本,仅适用于某些设备