자바파일

BestFood_20110127Activity.java

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

package com.jangan.BestFood_20110127;import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;public class BestFood_20110127Activity extends ListActivity {
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.areaselect);
        
        ListAdapter adapter;
        adapter = ArrayAdapter.createFromResource(this, R.array.area_list, android.R.layout.simple_list_item_single_choice);
        
        setListAdapter(adapter);
        getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    }
    @Override
    protected void onListItemClick(ListView lv, View v, int position, long id){
     String localName = (String) lv.getItemAtPosition(position);
     
     Intent intent = new Intent(this, MapOverlayView.class);
     intent.putExtra("area", localName);
     startActivity(intent);
     
    }}

 

 

 MapOverlayView .java

 package com.jangan.BestFood_20110127;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;import android.content.Intent;
import android.content.res.AssetManager;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;public class MapOverlayView extends MapActivity{
 private MapView mView;
 private MapController mControl;
 
 @Override
 protected void onCreate(Bundle saveInstanceState){
  super.onCreate(saveInstanceState);
  setContentView(R.layout.mapview);

  mView = (MapView) findViewById(R.id.mapview1);
  mView.setBuiltInZoomControls(true);
  mControl = mView.getController();
  mControl.setZoom(17);

  Drawable marker = this.getResources().getDrawable(R.drawable.pin);
  MyOverlay myOverlay = new MyOverlay(marker,this);
  List<Overlay> mapOverlays = mView.getOverlays();
  mapOverlays.add(myOverlay);

  Intent intent = getIntent();
  String address = intent.getStringExtra("area");

  String path = "data/data/com.jangan.BestFood_20110127";
  File folder = new File(path + "/databases");
  folder.mkdirs();
  File outfile = new File(folder.getPath().toString() + "/BestFoodHouse");
  AssetManager assetManager = this.getResources().getAssets();
  try{
   InputStream is = assetManager.open("BestFoodHouse", AssetManager.ACCESS_BUFFER);
   long filesize = is.available();
   System.out.println("db:" + filesize +"   as:" + outfile.length());
   if (outfile.length() != filesize){
    byte [] tempdata = new byte[(int)filesize];
    is.read(tempdata);
    is.close();
    outfile.createNewFile();
    FileOutputStream fo = new FileOutputStream(outfile);
    fo.write(tempdata);
    fo.close();
   }

  } catch (IOException e){Log.i("e", e.getMessage());}

  SQLiteDatabase bfDB;
  bfDB = this.openOrCreateDatabase("BestFoodHouse", MODE_PRIVATE, null);
  Cursor record = bfDB.query("house_list", null, "Address='" + address + "'", null, null, null, null);

  if(record != null){
   if(record.getCount() == 0){
    Toast.makeText(this, "맛집이 등록되어 있지 않습니다", Toast.LENGTH_LONG).show();
    return;
   } while(record.moveToNext()) {
    double dLat = Double.parseDouble(record.getString(2));
    double dLon = Double.parseDouble(record.getString(3));
    int lat = (int)(dLat * 1000000);
    int lon = (int)(dLon * 1000000);

    GeoPoint geoPoint = new GeoPoint(lat, lon);
    OverlayItem item = new OverlayItem(geoPoint,
      "이름: " + record.getString(1),
      "전화: " + record.getString(5) + "\n" +
      "메뉴: " + record.getString(6));
    myOverlay.addItem(item);
    if(record.isFirst()){
     mControl.animateTo(geoPoint);
    }
   }
  } else {
   Toast.makeText(this, "DB를 열지 못했습니다", Toast.LENGTH_LONG).show();
  }
 }
 
 @Override
 protected boolean isRouteDisplayed() {
  // TODO Auto-generated method stub
  return false;
 }}


 

 

 

---------------------------------------------------------------

MyOverlay.java

---------------------------------------------------------------

 package com.jangan.BestFood_20110127; import java.util.ArrayList;import android.content.Context;
import android.graphics.drawable.Drawable;
import android.widget.Toast;import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;public class MyOverlay extends ItemizedOverlay<OverlayItem>{
 private ArrayList<OverlayItem> items = new ArrayList<OverlayItem>();
 private Context mContext;
 
 public MyOverlay(Drawable defaultMarker){
  super(boundCenterBottom(defaultMarker));
 }
 public MyOverlay(Drawable defaultMarker, Context context) {
  super(boundCenterBottom(defaultMarker));
  mContext = context;
 }
 @Override
 protected OverlayItem createItem(int i) {
  return items.get(i);
 }
 @Override
 public int size() {
  return items.size();
 }
 
 public void addItem(OverlayItem item){
  items.add(item);
  populate();
 }
 
 protected boolean onTap(int index) {
  OverlayItem item = items.get(index);
  String msg = item.getTitle() + "\n" + item.getSnippet();
  Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
  return true;
 }
 
} 


 

-------------------------------------------------

로그캣 에러부분만 캡쳐했습니다

-------------------------------------------------