1

住所を入力するときに、場所の緯度と経度を取得したい。プログラムで作成されたカスタムダイログを使用したアクティビティが1つあります。これには住所フィールドがあり、住所を入力すると、緯度と対数を取得する必要があります。以下は、latとlngの詳細を取得しようとしている私のアダプタコードです

 public void performAction(View v, final Activity activity) {


            Context myContext = v.getContext();
            PopUpMenu popUpMenu = (PopUpMenu) v.getTag();
            String result = popUpMenu.getMenuName();
            if (result != null
                    && result.equalsIgnoreCase(myContext.getResources().getString(
                            R.string.addnewplace))) {
                 AttractionData attractionData = new AttractionData();
   createDiloag(attractionData,activity.getResources().getString(R.string.addnewplace));
                setgpsLocation();

            }



        public void setgpsLocation() {

            final EditText address = new EditText(this.activity);
            String addressText = address.getText().toString();

            try {
                final StringBuffer myAddress = new StringBuffer();
                if(addressText!=null&&!addressText.trim().equals("")){
                    myAddress.append(addressText);
                }
                Geocoder gcd = new Geocoder(parentActivity, Locale.getDefault());
                List<Address> addresses = gcd.getFromLocationName(addressText, 5);

                 if (addressList != null && addressList.size() > 0) {  

             Address location = addressList.get(0);
             location.getLatitude();
             location.getLongitude();

            // int lat = (int) (addressList.get(0).getLatitude() * 1e6);  
            // int lng = (int) (addressList.get(0).getLongitude() * 1e6);  



            AttractionData attractionData = new AttractionData();
             attractionData.setLatitude(location.getLatitude());
             attractionData.setLongitude( location.getLongitude());


            } catch (Exception e) {
                Log.e(TAG, "Error", e);
            }
        }

lat lngの詳細を取得できません、助けていただければ幸いです。

4

1 に答える 1

0

問題は次の行にあると思います。

final EditText address = new EditText(this.activity);
String addressText = address.getText().toString();

addressText既存のアクティビティの文字列を使用する代わりに新しいEditTextを作成するため、毎回空の文字列になります。

次のように置き換えてみてください。

final EditText address = (EditText)this.activity.findViewById(R.id.your_edit_text_id);

your_edit_text_idレイアウトファイルのIDに置き換えます。


プログラムでビューを作成した場合は、そのビューのゲッターを提供します。

あなたの活動では:

public EditText getAddressEditText() {
    return this.mAddressEditText;
}

そして、次のように使用します。

final EditText address = this.activity.getAddressEditText();
于 2013-02-07T11:16:12.107 に答える