2017-01-10 4 views
0

ロケーションの名前とLatlangに基づいたマップ用のsearchviewが必要です。android-どのように文字列と緯度のラングとマップのsearchviewをimpaneled?

私はHashmap()を持っています。

しかし、この行: map.put(BaseColumns._ID、 "rowid AS" + BaseColumns._ID);

エラー:間違った第2引数型、必須String、Found Latlang。

BaseColumns._IDをLatlangに変更しようとしましたが、できませんでした。

どうすればこの問題を解決できますか?しかし、あなたのデータは文字列である

HashMap<String,Latlang> map = new HashMap<String,Latlang>(); 

:あなたのようにマップを宣言している

private static final String TAG = "DictionaryDatabase"; 

//The columns we'll include in the dictionary table 
public static final String KEY_WORD = SearchManager.SUGGEST_COLUMN_TEXT_1; 
public static final Latlang KEY_DEFINITION = SearchManager.SUGGEST_COLUMN_TEXT_2; 

private static final String DATABASE_NAME = "dictionary"; 
private static final String FTS_VIRTUAL_TABLE = "FTSdictionary"; 
private static final int DATABASE_VERSION = 2; 

private final DictionaryOpenHelper mDatabaseOpenHelper; 
private static final HashMap<String,Latlang> mColumnMap = buildColumnMap(); 

/** 
* Constructor 
* @param context The Context within which to work, used to create the DB 
*/ 
public DictionaryDatabase(Context context) { 
    mDatabaseOpenHelper = new DictionaryOpenHelper(context); 
} 

private static HashMap<String,Latlang> buildColumnMap() { 
    HashMap<String,Latlang> map = new HashMap<String,Latlang>(); 
    map.put(KEY_WORD, KEY_DEFINITION); 
    map.put(KEY_WORD, KEY_DEFINITION); 
    map.put(BaseColumns._ID, "rowid AS " + 
      BaseColumns._ID); 
    map.put(SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID, "rowid AS " + 
      SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID); 
    map.put(SearchManager.SUGGEST_COLUMN_SHORTCUT_ID, "rowid AS " + 
      SearchManager.SUGGEST_COLUMN_SHORTCUT_ID); 
    return map; 
} 
+1

map.put(BaseColumns._ID、new Latlang(data1、data2));または、なぜあなたは 'Map 'を作成できませんか? –

+0

@KNeerajLalありがとう – Hadis

答えて

0

HashMap<String, String> map = new HashMap<String, String>(); 

map.put(SearchManager.SUGGEST_COLUMN_SHORTCUT_ID, "rowid AS " + 
      SearchManager.SUGGEST_COLUMN_SHORTCUT_ID); 

私はあなたがこのようなマップを宣言示唆します

また、値が実際にLatLngであることを確認してください。

map.put(BaseColumns._ID, new LatLng(latitude, longitude)); 
+0

ありがとう – Hadis

+0

私はもう少しコーディングを行い、アプリケーションを実行し、今このエラーが発生します**原因:java.lang.NullPointerException:仮想メソッド 'double java.lang.Double.doubleValue (new LatLng(latitude、longitude)); ' – Hadis

+0

LatLngがコンストラクタ内で2つのdoubleを取得していることに気づいたら、この行のnullオブジェクト参照に** があります。あなたがしているのは、それがヌルであるDoubleオブジェクト(目的の大文字D)を与えることです。初期化し、新しいLatLng(緯度、経度)をデータなしで早く呼び出さないようにしてください。 –

関連する問題