Android Google Map实例 - 创建一个Google Map例程

  1. 新建一个工程HelloGoogleMaps
  2. 打开 AndroidManifest.xml 在 <application> 元素下添加:
    <uses-library android:name="com.google.android.maps" />
  3. 在 <manifest> 元素下添加如下语句来取得联网许可:
    <uses-permission android:name="android.permission.INTERNET" />
  4. 打开 res/layout/main.xml file 将文件改为:
    <?xml version="1.0" encoding="utf-8"?>
    <com.google.android.maps.MapView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true"
        android:apiKey="
    这里填入 Google Map API Key"
    />

如何取得Google Map API Key请参阅:http://blog.csdn.net/wsnangua/article/details/6715033

  1. 打开 HelloGoogleMaps.java . For this Activity, extend MapActivity (instead of android.app.Activity):
    public class HelloGoogleMaps extends MapActivity {
  2. 重写isRouteDisplayed函数:
    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
  3. 在HelloGoogleMaps 类中添加onCreate() :
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
  4. 添加 import com.google.android.maps.*;
    装载
    main.xml文件定义的layout file.

如果需要添加地图缩放功能在onCreate() 下添加:
    MapView mapView = (MapView)findViewById(R.id.mapview);
    mapView.setBuiltInZoomControls(true);


好的,下面是一个简单的例程,演示如何在 Flutter 中使用本地数据库进行增删改查操作: 1. 添加依赖 在 `pubspec.yaml` 文件中添加以下依赖: ```yaml dependencies: sqflite: ^2.0.0+3 path_provider: ^2.0.2 ``` 其中 `sqflite` 是 SQLite 数据库的 Flutter 插件,`path_provider` 是用于获取本地文件路径的插件。 2. 创建数据库 在 `lib` 目录下创建一个 `database_helper.dart` 文件,并添加以下代码: ```dart import 'dart:async'; import 'dart:io' as io; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; import 'package:sqflite/sqflite.dart'; class DatabaseHelper { static final DatabaseHelper _instance = new DatabaseHelper.internal(); factory DatabaseHelper() => _instance; static Database _db; Future<Database> get db async { if (_db != null) return _db; _db = await initDb(); return _db; } DatabaseHelper.internal(); initDb() async { io.Directory documentsDirectory = await getApplicationDocumentsDirectory(); String path = join(documentsDirectory.path, "my_database.db"); var theDb = await openDatabase(path, version: 1, onCreate: _onCreate); return theDb; } void _onCreate(Database db, int version) async { await db.execute(''' CREATE TABLE my_table ( id INTEGER PRIMARY KEY, name TEXT, age INTEGER ) '''); } Future<int> insert(Map<String, dynamic> row) async { var dbClient = await db; return await dbClient.insert('my_table', row); } Future<int> update(Map<String, dynamic> row) async { var dbClient = await db; return await dbClient.update('my_table', row, where: 'id = ?', whereArgs: [row['id']]); } Future<int> delete(int id) async { var dbClient = await db; return await dbClient.delete('my_table', where: 'id = ?', whereArgs: [id]); } Future<List<Map<String, dynamic>>> query() async { var dbClient = await db; return await dbClient.query('my_table'); } } ``` 这个类中包含了以下方法: - `initDb()`:初始化数据库,并创建一个名为 `my_table` 的表。 - `insert()`:插入一行数据到 `my_table` 表中。 - `update()`:更新 `my_table` 表中的一行数据。 - `delete()`:从 `my_table` 表中删除指定 ID 的数据。 - `query()`:查询 `my_table` 表中的所有数据。 3. 使用数据库 在需要使用数据库的地方,可以通过以下方式来使用: ```dart import 'package:flutter/material.dart'; import 'package:path_provider/path_provider.dart'; import 'package:sqflite/sqflite.dart'; import 'package:path/path.dart'; import 'database_helper.dart'; class HomePage extends StatefulWidget { @override _HomePageState createState() => _HomePageState(); } class _HomePageState extends State<HomePage> { final dbHelper = DatabaseHelper(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('SQLite Demo'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ RaisedButton( child: Text('Insert'), onPressed: () { _insert(); }, ), RaisedButton( child: Text('Update'), onPressed: () { _update(); }, ), RaisedButton( child: Text('Delete'), onPressed: () { _delete(); }, ), RaisedButton( child: Text('Query'), onPressed: () { _query(); }, ), ], ), ), ); } void _insert() async { Map<String, dynamic> row = { 'name': 'John', 'age': 30, }; final id = await dbHelper.insert(row); print('inserted row id: $id'); } void _update() async { Map<String, dynamic> row = { 'id': 1, 'name': 'Mary', 'age': 25, }; final rowsAffected = await dbHelper.update(row); print('updated $rowsAffected row(s)'); } void _delete() async { final rowsDeleted = await dbHelper.delete(1); print('deleted $rowsDeleted row(s)'); } void _query() async { final allRows = await dbHelper.query(); allRows.forEach((row) => print(row)); } } ``` 在这个例子中,我们使用了 `DatabaseHelper` 类来创建和管理数据库。在 `HomePage` 中,我们通过 `dbHelper` 实例来调用数据库操作方法。在每个操作方法中,我们都使用了 `async` 和 `await` 关键字来异步执行数据库操作。 这个例子只是一个简单的示例,实际上,你可以根据需要修改 `DatabaseHelper` 类来满足你的具体需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>