안드로이드 개발 질문/답변
(글 수 45,052)
import java.util.ArrayList; import java.util.Date; import java.util.HashMap;
import kpapptime.talk.school.pase.ListInfo; import kpapptime.talk.school.pase.RSSParse; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.view.Window; import android.widget.AdapterView; import android.widget.ListView; import android.widget.SimpleAdapter;
import com.google.android.maps.GeoPoint;
public class GpslistActivity extends Activity { // private static final String TAG = "MainActivity"; private ArrayList<HashMap<String, String>> list_board = new ArrayList<HashMap<String, String>>(); private SimpleAdapter sa; private ListView lv; private int sel_position; private int type; int value = 0; Context context; private int schoolNum = 0; private LocationListener mLocationListener; SharedPreferences pref; RSSParse rss; Activity _this;
public void onCreate(Bundle savedInstanceState) { try { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.gpslist); Intent intent = getIntent(); type = intent.getIntExtra("type", 0); context = GpslistActivity.this; _this = GpslistActivity.this; LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); lm.isProviderEnabled(LocationManager.GPS_PROVIDER); //프로바이더 중에 설정한 조건에 적합한 것을 가져온다. Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_COARSE); // 정확도 // criteria.setPowerRequirement(Criteria.POWER_LOW); // 전원 소리량 // criteria.setAltitudeRequired(false); // 고도 criteria.setBearingRequired(false); // provider 기본 정보(방위, 방향) criteria.setSpeedRequired(false); // 속도 criteria.setCostAllowed(true); // 금전적 비용 if( lm == null){ finish(); } //두번째 파라미터를 true 로 해야 활성화된 프로바이더를 가져온다. String bestProvider = lm.getBestProvider(criteria, true); Location location = lm.getLastKnownLocation(bestProvider); double lat = 0; double lng = 0; lat = location.getLatitude(); lng = location.getLongitude(); Log.e("","" + lat + lng); lv = (ListView) findViewById(R.id.listView1); rss = new RSSParse(); sa = new SimpleAdapter(this, list_board, R.layout.list_now,new String[] { ListInfo.NAME }, new int[] { R.id.textView1 }); lv.setAdapter(sa); // rss.threadRssParse(GpslistActivity.this, sa, list_board, "http://220.93.212.136/sk/board/rss_school.php?lat=35.1769049&lng=126.8870081"); rss.threadRssParse(GpslistActivity.this, sa, list_board,"http://220.93.212.136/sk/board/rss_school.php?lat=" + lat + "&lng="+ lng); lv.setOnItemClickListener(listener); pref = getSharedPreferences("pref", Activity.MODE_WORLD_READABLE); } catch(Exception e) { Log.d("", e.toString()); } } public void onLocationChanged(Location location){ GeoPoint pos = new GeoPoint( (int)(location.getLatitude()*1E6), (Integer) null); GeoPoint pos1 = new GeoPoint( (Integer) null, (int)(location.getLongitude()*1E6)); } private class MyLocationListener implements LocationListener { public void onLocationChanged(Location location){ GeoPoint pos = new GeoPoint( (int)(location.getLatitude()*1E6), (Integer) null); GeoPoint pos1 = new GeoPoint( (Integer) null, (int)(location.getLongitude()*1E6)); } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub }
@Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub }
@Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } } AdapterView.OnItemClickListener listener = new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> list, View view, int position, long id) { sel_position = position; final HashMap<String, String> temp = (HashMap<String, String>) list_board .get(sel_position); final Handler mHandler = new Handler();
new AlertDialog.Builder(GpslistActivity.this) .setMessage( temp.get("name") + " 가 맞습니까? (설정이후 12시간 안에 학교를 수정할 수 없습니다!)") .setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) {
Log.e("데이터", temp.get("num")); long saveTime = pref.getLong("savetime", 0);
// 현재 시간을 가져옴 Date date = new Date(); long now = date.getTime();
if (saveTime == 0 || (now - saveTime) > ListInfo.H12) { SharedPreferences.Editor editor = pref .edit(); editor.putInt("SchoolNum", Integer .parseInt(temp.get("num"))); editor.putLong("savetime", now); editor.commit();
schoolNum = Integer.parseInt(temp .get("num"));
mHandler.post(new Runnable() { public void run() { Intent intent = new Intent( GpslistActivity.this, ManuActivity.class); intent.putExtra("type", type); intent.putExtra("num", schoolNum); startActivity(intent); } });
_this.finish(); } } }).setNegativeButton("취소", null).show(); } };
}
저런 코드에서
public void onLocationChanged(Location location){
GeoPoint pos = new GeoPoint(
(int)(location.getLatitude()*1E6),
(Integer) null);
GeoPoint pos1 = new GeoPoint(
(Integer) null,
(int)(location.getLongitude()*1E6));
}
이코드에서
온크리에이트 안에있는
rss.threadRssParse(GpslistActivity.this, sa, list_board,"http://220.93.212.136/sk/board/rss_school.php?lat=" + lat + "&lng="+ lng);
이것을
rss.threadRssParse(GpslistActivity.this, sa, list_board,"http://220.93.212.136/sk/board/rss_school.php?lat=" + pos + "&lng="+ pos1);
이런식으로 바꾸고싶습니다 ㅠㅠ