0

データを取得するために静的データベースを使用しています。データベースから静的な場所の経度と緯度を取得し、文字列に格納して使用しています。すべての経度と緯度を抽出して配列に保存したい場合はどうすればよいですか...サイズ[137] [15]の配列を意味し、緯度と経度を単一の2次元配列に保存します...または2つの別個の1次元配列. 緯度の 1 つ..緯度の別...

DataBaseHelper2 mDbHelper = new DataBaseHelper2(this);
try {
    mDbHelper.createDataBase();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}      
try {
    mDbHelper.openDataBase();
} catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}   
    Spinner s1=(Spinner) findViewById(R.id.spinner1);
    int index1=s1.getSelectedItemPosition();
    String Text1 = s1.getSelectedItem().toString();
    String Text3="";
    String Text4="";

    if(index1==0)
    {
        Toast.makeText(getApplicationContext(),"Please Enter station", Toast.LENGTH_SHORT).show();
    }
    else{
    Cursor c=mDbHelper.fetchQuery(Text1);

    int latitude =  c.getColumnIndex("lat");
    int longitude = c.getColumnIndex("lng");

    for(c.moveToFirst();!c.isAfterLast();c.moveToNext()){
        Text3=Text3 + c.getString(latitude)+"\n";
        Text4=Text4 + c.getString(longitude)+"\n";
    }

    Double p,p1;
    p=Double.valueOf(Text3).doubleValue();
    p1=Double.valueOf(Text4).doubleValue();

fetchquery は、駅名が spinner1 のテキストと一致する経度と緯度を抽出するメソッドです。

4

2 に答える 2

0

使用List<BasicNameValuePair>すると、キーと値の方法で保存されます。繰り返し保存すると、次のようにリストに追加されます。

List<BasicNameValuePair> latLongList = new ArrayList<BasicNameValuePair>();
 for(c.moveToFirst();!c.isAfterLast();c.moveToNext()){
        latLongList.add(new BasicNameValuePair(c.getString(latitude), c.getString(longitude)));
    }

その後、いつでもどこでも使用できます。この場合、緯度がキーになり、経度が値になります。

これは、これを行う 1 つの方法です。代わりに、同じ方法でBasicNameValuePair使用および設定することもできます。android.location.Location

于 2013-03-03T13:46:29.980 に答える
0

これに 2 次元配列を使用する価値がある以上の問題に遭遇すると思います。2 つの通常の配列を保持したい場合は、おそらく次のコードを確認できます。

        if(index1==0){
            Toast.makeText(getApplicationContext(),"Please Enter station", Toast.LENGTH_SHORT).show();
        }else{
        Cursor c=mDbHelper.fetchQuery(Text1);
        arrLatitude = new String [c.getCount()];
        arrLongitude = new String [c.getCount()];

        int latitude =  c.getColumnIndex("lat");
        int longitude = c.getColumnIndex("lng");

        i = 0;
        for(c.moveToFirst();!c.isAfterLast();c.moveToNext()){
            Text3=Text3 + c.getString(latitude)+"\n";
            Text4=Text4 + c.getString(longitude)+"\n";
            arrLatitude[i] = Text3;
            arrLongitude[i] = Text4;
        i++;
        }

個人的には、これらの両方を一緒に保持するためのオブジェクトでそれを行うことをお勧めしますStrings. そうすれば、何らかの理由でインデックスが一致しなくなった場合でも安心できます。

于 2013-03-03T14:03:38.750 に答える