声明浮点值,得到浮点值 [英] Declaring float value, get float value

查看:98
本文介绍了声明浮点值,得到浮点值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想问一下
如果我有问题,试图改变我的code的纬度和经度为浮动,
 任何人都可以指导我吧。
previously,它是字符串,但现在我想decalre它作为浮动。
我做了一些,但我不知道这是否是正确。

 公共类AndroidXMLParsingActivity扩展ListActivity {
        静态最终字符串键=weatherFilter;
        字符串URL =;        // XML节点键
        静态最后弦乐KEY_EVENT =事件; //父节点
        静态最后弦乐KEY_TITLE =称号;
        静态最后弦乐KEY_URL =URL;
        静态最后弦乐KEY_DESC =说明;
        静态最后弦乐KEY_START_TIME =START_TIME;
        静态最后弦乐KEY_STOP_TIME =STOP_TIME;
        静态最后弦乐KEY_VENUE_NAME =venue_name;
        静态最后弦乐KEY_COUNTRY_NAME =COUNTRY_NAME;
        静态最后弦乐KEY_VENUE_ADDRESS =venue_address;
        静态最后弦乐KEY_VENUE =场地;
        静态最终浮动KEY_LATITUDE =纬度;
        静态最终浮动KEY_LONGITUDE =经度;
            公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);        在意向= getIntent();
        URL = in.getStringExtra(KEY);
        最终的ArrayList<&HashMap的LT;字符串,字符串>>菜单项=新的ArrayList<&HashMap的LT;字符串,字符串>>();        XMLParser的解析器=新XMLParser的();
        字符串XML = parser.getXmlFromUrl(URL); //获取XML
        文档的文档= parser.getDomElement(XML); //获得DOM元素        节点列表NL = doc.getElementsByTagName(KEY_EVENT);
        项目> //遍历所有项目节点&LT循环;
        的for(int i = 0; I< nl.getLength();我++){
            //创建新的HashMap
            HashMap的<字符串,字符串>地图=新的HashMap<字符串,字符串>();
            元素e =(元)nl.item(I)
            //将每个子节点的HashMap键=>值
            map.put(KEY_TITLE,parser.getValue(即KEY_TITLE));
            map.put(KEY_URL,parser.getValue(即KEY_URL));
            map.put(KEY_DESC,描述:+ parser.getValue(即KEY_DESC));
            map.put(KEY_START_TIME,parser.getValue(即KEY_START_TIME));
            map.put(KEY_STOP_TIME,parser.getValue(即KEY_STOP_TIME));
            map.put(KEY_VENUE_NAME,parser.getValue(即KEY_VENUE_NAME));
            map.put(KEY_COUNTRY_NAME,parser.getValue(即KEY_COUNTRY_NAME));
            map.put(KEY_VENUE_ADDRESS,parser.getValue(即KEY_VENUE_ADDRESS));            浮经纬度= Float.parseFloat(KEY_LATITUDE);
                   浮动液化天然气= Float.parseFloat(KEY_LONGITUDE);
            map.put(KEY_VENUE,parser.getValue(即KEY_VENUE_NAME)+,+ parser.getValue(即KEY_VENUE_ADDRESS));            //添加HashList到ArrayList的            menuItems.add(地图);
        }        //添加菜单项到ListView控件
        ListAdapter适配器=新SimpleAdapter(这一点,菜单项,
                R.layout.list_item,新的String [] {KEY_TITLE,KEY_DESC,KEY_COUNTRY_NAME,
                        KEY_VENUE,KEY_LATITUDE,KEY_LONGITUDE,KEY_START_TIME,},新的INT [] {
                        R.id.title,R.id.description,R.id.countryName,R.id.venueName,R.id.lat,R.id.lng,
                        R.id.startTime});        setListAdapter(适配器);        //选择单个ListView项
        ListView控件LV = getListView();        lv.setOnItemClickListener(新OnItemClickListener(){            @覆盖
            公共无效onItemClick(适配器视图<>母公司,观景,
                    INT位置,长的id){
                //从选定的ListItem得到的值
                字符串title =((的TextView)view.findViewById(R.id.title))
                        .getText()的toString()。
                字符串描述=((的TextView)view.findViewById(R.id.description))
                        .getText()的toString()。
                字符串场地=((的TextView)view.findViewById(R.id.venueName))
                        .getText()的toString()。
                字符串纬度=((的TextView)view.findViewById(R.id.lat))
                        .getText()的toString()。                字符串LNG =((的TextView)view.findViewById(R.id.lng))
                        .getText()的toString()。                //开始新意图
                在意向=新意图(getApplicationContext()
                        SingleMenuItemActivity.class);
                in.putExtra(KEY_TITLE,职称);
                in.putExtra(KEY_DESC,说明);
                in.putExtra(KEY_VENUE,地点);
                in.putExtra(KEY_LATITUDE,LAT);
                in.putExtra(KEY_LONGITUDE,LNG);
                startActivity(在);            }
        });    }
}


解决方案

您似乎相当困惑。您需要从XML解析器的解析值到彩车的。更改此:

 浮动纬度= Float.parseFloat(KEY_LATITUDE);
浮动液化天然气= Float.parseFloat(KEY_LONGITUDE);

要:

 浮动纬度= Float.parseFloat(parser.getValue(KEY_LATITUDE));
浮动液化天然气= Float.parseFloat(parser.getValue(KEY_LONGITUDE));

否则你只是在解析经度和纬度到这显然是行不通的花车。

I would like to ask If I've problem trying to change my code for lat and lng into float, can anyone guide me with it. previously, it is in string, but now i would like to decalre it as float. I've done some, but I not sure if it is correctly done.

 public class AndroidXMLParsingActivity extends ListActivity {
        static final String KEY = "weatherFilter";
        String URL = "";

        // XML node keys
        static final String KEY_EVENT = "event"; // parent node
        static final String KEY_TITLE = "title";
        static final String KEY_URL = "url";
        static final String KEY_DESC = "description";
        static final String KEY_START_TIME = "start_time";
        static final String KEY_STOP_TIME = "stop_time";
        static final String KEY_VENUE_NAME = "venue_name";
        static final String KEY_COUNTRY_NAME = "country_name";
        static final String KEY_VENUE_ADDRESS = "venue_address";
        static final String KEY_VENUE = "venue";
        static final float KEY_LATITUDE = "latitude";
        static final float KEY_LONGITUDE = "longitude";
            public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Intent in = getIntent();
        URL = in.getStringExtra(KEY);
        final ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

        XMLParser parser = new XMLParser();
        String xml = parser.getXmlFromUrl(URL); // getting XML
        Document doc = parser.getDomElement(xml); // getting DOM element

        NodeList nl = doc.getElementsByTagName(KEY_EVENT);
        // looping through all item nodes <item>
        for (int i = 0; i < nl.getLength(); i++) {
            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();
            Element e = (Element) nl.item(i);
            // adding each child node to HashMap key => value
            map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));
            map.put(KEY_URL, parser.getValue(e, KEY_URL));
            map.put(KEY_DESC, "Description: " + parser.getValue(e, KEY_DESC));
            map.put(KEY_START_TIME, parser.getValue(e, KEY_START_TIME));
            map.put(KEY_STOP_TIME, parser.getValue(e, KEY_STOP_TIME));
            map.put(KEY_VENUE_NAME, parser.getValue(e, KEY_VENUE_NAME));
            map.put(KEY_COUNTRY_NAME, parser.getValue(e, KEY_COUNTRY_NAME));
            map.put(KEY_VENUE_ADDRESS, parser.getValue(e, KEY_VENUE_ADDRESS));

            float lat=Float.parseFloat(KEY_LATITUDE);
                   float lng=Float.parseFloat(KEY_LONGITUDE);
            map.put(KEY_VENUE, parser.getValue(e, KEY_VENUE_NAME) + ", " + parser.getValue(e, KEY_VENUE_ADDRESS));

            // adding HashList to ArrayList

            menuItems.add(map);


        }



        // Adding menuItems to ListView
        ListAdapter adapter = new SimpleAdapter(this, menuItems,
                R.layout.list_item, new String[] { KEY_TITLE, KEY_DESC,  KEY_COUNTRY_NAME,
                        KEY_VENUE , KEY_LATITUDE,KEY_LONGITUDE, KEY_START_TIME, }, new int[] {
                        R.id.title, R.id.description, R.id.countryName, R.id.venueName, R.id.lat,R.id.lng,
                        R.id.startTime });

        setListAdapter(adapter);

        // selecting single ListView item
        ListView lv = getListView();

        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // getting values from selected ListItem
                String title = ((TextView) view.findViewById(R.id.title))
                        .getText().toString();
                String description = ((TextView) view.findViewById(R.id.description))
                        .getText().toString();
                String venue = ((TextView) view.findViewById(R.id.venueName))
                        .getText().toString();
                String lat = ((TextView) view.findViewById(R.id.lat))
                        .getText().toString();

                String lng = ((TextView) view.findViewById(R.id.lng  ))
                        .getText().toString();

                // Starting new intent
                Intent in = new Intent(getApplicationContext(),
                        SingleMenuItemActivity.class);
                in.putExtra(KEY_TITLE, title);
                in.putExtra(KEY_DESC, description);
                in.putExtra(KEY_VENUE, venue);
                in.putExtra(KEY_LATITUDE, lat);
                in.putExtra(KEY_LONGITUDE, lng);
                startActivity(in);

            }
        });



    }
}

解决方案

You seem to be quite confused. You need to parse the values into floats from the XML parser. Change this:

float lat=Float.parseFloat(KEY_LATITUDE);
float lng=Float.parseFloat(KEY_LONGITUDE);

To:

float lat=Float.parseFloat(parser.getValue(KEY_LATITUDE));
float lng=Float.parseFloat(parser.getValue(KEY_LONGITUDE));

Otherwise you're just parsing "longitude" and "latitude" into floats which obviously won't work.

这篇关于声明浮点值,得到浮点值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆