微调以列表视图 [英] Spinner with list view

查看:266
本文介绍了微调以列表视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想问一下,
我与微调工作。
我有一个列表视图和一个微调。
在我的飞旋我宣布月,六一,七一,八一,九月,十月,月,DEC

在列表视图中,最初,它是空的。
当我点击八一,它会显示在列表视图八月(august.java)的数据,
可我知道,有没有办法做到这一点?

由于现在,我通过做类..
意思是,当我的onclick月,这将打开新的意图。
但我想它合并为一类,所以,当我点击八一,它会在列表视图改变,而不是开辟新的意图。
有没有办法做到这一点?

这是我的code

 的String []月= {
                六月,
                七月,
                八月,
                Septemeber
                十一月,
                十二月,

我date.java的一部分

  // SpinnerView
            S1 =(微调)findViewById(R.id.spinner1);        ArrayAdapter<串GT;适配器=新ArrayAdapter<串GT;(这一点,android.R.layout.simple_spinner_item,月);
        s1.setAdapter(适配器);
        s1.setOnItemSelectedListener(新OnItemSelectedListener()
        {
            公共无效onItemSelected(适配器视图<>为arg0,ARG1观,诠释ARG2,长ARG3){
                INT指数= s1.getSelectedItemPosition();
                //Toast.makeText(getBaseContext(),你已经入围项目:+月[指数],Toast.LENGTH_SHORT).show();
            }
            公共无效onNothingSelected(适配器视图<>为arg0){}
            });
    如果(s1.equals(八一)){        startActivity(新意图(date.this,MainActivity.class));
    }
    其他{
        startActivity(新意图(date.this,八月
                。类));    }

数据code是我得到。
august.java

 公共类扩展八月{ListActivity    字符串的URL = \"http://api.eventful.com/rest/events/search?app_key=42t54cX7RbrDFczc&location=singapore&page_size=20&date=august\";    // XML节点键
    静态最后弦乐KEY_EVENT =事件; //父节点
    静态最后弦乐KEY_TITLE =称号;
    静态最后弦乐KEY_URL =URL;
    静态最后弦乐KEY_DESC =说明;
    静态最后弦乐KEY_START_TIME =START_TIME;
    静态最后弦乐KEY_STOP_TIME =STOP_TIME;
    静态最后弦乐KEY_TIME =combine_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.date);        最终的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));
            如果(parser.getValue(即KEY_STOP_TIME)!=){
                map.put(KEY_TIME,parser.getValue(即KEY_START_TIME)+ -
                        + parser.getValue(即KEY_STOP_TIME));
            }其他{
                map.put(KEY_TIME,parser.getValue(即KEY_START_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));
            map.put(KEY_LATITUDE,parser.getValue(即KEY_LATITUDE));
            map.put(KEY_LONGITUDE,parser.getValue(即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_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)查看
                        .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(在);            }
        });
    }}


解决方案

使用以下code我已经尝试过了做工精细

 进口的java.util.ArrayList;
    进口的java.util.List;    进口android.app.Activity;
    进口android.os.Bundle;
    进口android.view.Menu;
    进口android.view.View;
    进口android.widget.AdapterView;
    进口android.widget.ArrayAdapter;
    进口android.widget.Spinner;
    进口android.widget.Toast;
    进口android.widget.AdapterView.OnItemSelectedListener;    公共类MainActivity扩展活动实现OnItemSelectedListener {
        私人微调SP;        @覆盖
        保护无效的onCreate(捆绑savedInstanceState){
            super.onCreate(savedInstanceState);
            的setContentView(R.layout.activity_main);
            UI();
            spElements();        }        公共无效UI(){
            SP =(微调)findViewById(R.id.mydsp);
            sp.setOnItemSelectedListener(本);
        }        公共无效spElements(){
            清单<串GT;个月=新的ArrayList<串GT;();
            months.add(六一);
            months.add(七月);
            months.add(八一);
            months.add(九);
            months.add(十月);
            months.add(十一月);
            months.add(十二月);            //创建用于微调适配器
            ArrayAdapter<串GT; DataAdapter的=新ArrayAdapter<串GT;(这一点,
                    android.R.layout.simple_spinner_item,月);            //下拉布局样式 - 列表视图与单选按钮
            DataAdapter的
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);            //附加数据适配器微调器
            sp.setAdapter(DataAdapter的);
        }        @覆盖
        公共布尔onCreateOptionsMenu(菜单菜单){            。getMenuInflater()膨胀(R.menu.main,菜单);
            返回true;
        }        @覆盖
        公共无效onItemSelected(适配器视图<>主,查看视图,INT位置,
                长标识){            字符串项= main.getItemAtPosition(位置)的ToString();  INT指数= item.getSelectedItemPosition();
            Toast.makeText(main.getContext(),你选月是:+项目,
                    Toast.LENGTH_LONG).show();        }        @覆盖
        公共无效onNothingSelected(适配器视图<>为arg0){
            // TODO自动生成方法存根        }    }

I would like to ask, I'm working with spinner. I've a list view and a spinner. in my spinner I declare "month", "june","july","august","sept","oct","nov","dec"

In the list view, originally, it is empty. When I click on "August" , it will show that data of August(august.java) in the list view, May I know is there any way to do it?

Because right now , I'm doing via class.. Meaning, when I onclick Aug, it will open up new intent. But I wanted to merge it into one class, so that when I click "August", it will change in the list view and not open up new intent. Is there a way to do it?

This is my code

String [] months = {
                "June",
                "July",
                "August",
                "Septemeber",
                "November",
                "December",

part of my date.java

//SpinnerView
            s1 = (Spinner) findViewById(R.id.spinner1);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, months);
        s1.setAdapter(adapter);
        s1.setOnItemSelectedListener(new OnItemSelectedListener()
        {
            public void onItemSelected(AdapterView<?> arg0,View arg1, int arg2, long arg3) {
                int index = s1.getSelectedItemPosition();
                //Toast.makeText(getBaseContext(), "You have seleted item :" + months[index] , Toast.LENGTH_SHORT).show();
            }
            public void onNothingSelected(AdapterView<?>arg0) {}
            });


    if ( s1.equals("August")) {

        startActivity(new Intent(date.this,MainActivity.class));
    }
    else{
        startActivity(new Intent(date.this,august
                .class));

    } 

data code that I'm getting. august.java

public class august extends ListActivity {

    String URL = "http://api.eventful.com/rest/events/search?app_key=42t54cX7RbrDFczc&location=singapore&page_size=20&date=august";

    // 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_TIME = "combine_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 String KEY_LATITUDE = "latitude";
    static final String KEY_LONGITUDE = "longitude";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.date);

        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));
            if (parser.getValue(e, KEY_STOP_TIME) != "") {
                map.put(KEY_TIME, parser.getValue(e, KEY_START_TIME) + "-"
                        + parser.getValue(e, KEY_STOP_TIME));
            } else {
                map.put(KEY_TIME, parser.getValue(e, KEY_START_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));
            map.put(KEY_LATITUDE, parser.getValue(e, KEY_LATITUDE));
            map.put(KEY_LONGITUDE, parser.getValue(e, 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_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);

            }
        });


    }

}

解决方案

Use following code i have tried it is working fine

 import java.util.ArrayList;
    import java.util.List;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.Spinner;
    import android.widget.Toast;
    import android.widget.AdapterView.OnItemSelectedListener;

    public class MainActivity extends Activity implements OnItemSelectedListener {
        private Spinner sp;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            uI();
            spElements();

        }

        public void uI() {
            sp = (Spinner) findViewById(R.id.mydsp);
            sp.setOnItemSelectedListener(this);
        }

        public void spElements() {
            List<String> months = new ArrayList<String>();
            months.add("June");
            months.add("July");
            months.add("August");
            months.add("September");
            months.add("October");
            months.add("November");
            months.add("December");

            // Creating adapter for spinner
            ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_spinner_item, months);

            // Drop down layout style - list view with radio button
            dataAdapter
                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

            // attaching data adapter to spinner
            sp.setAdapter(dataAdapter);
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {

            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }

        @Override
        public void onItemSelected(AdapterView<?> main, View view, int position,
                long Id) {

            String item = main.getItemAtPosition(position).toString();

  int index = item.getSelectedItemPosition();
            Toast.makeText(main.getContext(), "You selected Month is: " + item,
                    Toast.LENGTH_LONG).show();

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }

    }

这篇关于微调以列表视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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