Android:如何让lat和long进入我的适配器

时间:2013-02-07 10:11:20

标签: android google-maps

当我输入我的地址时,我希望得到一个地方的纬度和经度。我有一个以编程方式创建自定义dailog的活动,这里有地址字段,当我输入我的地址时,我需要获得纬度和经度。下面是我的适配器代码,我试图获取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详细信息,感谢任何帮助。

1 个答案:

答案 0 :(得分: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。


如果您以编程方式创建视图,请为其提供getter。

在您的活动中:

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

然后像这样使用它:

final EditText address = this.activity.getAddressEditText();