隐藏微调控制框中的第一项 [英] Hide first item in the spinner

查看:13
本文介绍了隐藏微调控制框中的第一项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理微调工具,微调工具中有5个项目,我只想隐藏微调工具中的第一个项目,而不是移除,只是隐藏。问题是,当我单击微调工具时,没有选择API通过使用First Item_id命中的项目,我只是在微调工具的第一个位置(0)添加了空白字段。它工作正常。唯一的问题是第一个空白项的可见性。我想隐藏该项。我的代码如下:

            JSONArray staff_array;
            List<String> owner_list =new ArrayList<String>();
            final List<String> owner_id_list = new ArrayList<String>();

            try 
            {    
            isEnabled(0); //To disable First Item

            owner_list.add("");

            owner_id_list.add("");

            for (int i = 0; i <staff_array.length(); i++) 
            {           
            JSONObject staff_obj=staff_array.getJSONObject(i);
            String fname=staff_obj.getString(FIRST_NAME);
            String lname=staff_obj.getString(LAST_NAME);
            owner_id_list.add(staff_obj.getString(STAFF_ID));

            String staff_name=fname.concat(" "+lname);                      
            owner_list.add(staff_name);     
            }
            owner_list.add((String) getText(R.string.unassigned));
            owner_id_list.add("0");




            } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            }

            ArrayAdapter<String> owner_Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,owner_list);
            owner_Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spin.setAdapter(owner_Adapter);
            int owner_Position = owner_Adapter.getPosition(tv_owner.getText().toString());

            spin.setSelection(owner_Position);


            spin.performClick();

            spin.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
            int pos, long id) {
            // TODO Auto-generated method stub
            String selected_owner = parent.getItemAtPosition(pos).toString();
            String staff_id=owner_id_list.get(pos);
            //*************************
            Toast.makeText(getApplicationContext(),selected_owner+" "+staff_id , Toast.LENGTH_SHORT).show();
            Log.d("selected owner : ",selected_owner);
            Log.d("staff id is blank : ",staff_id);


            if(staff_id!="")
            {
            String owner_filter="&vis_ticket_id="+Ticket_id+"&vis_action=staff&vis_update_id="+staff_id;
            UPDATE_OWNER_URL=op.getUrl(getApplicationContext(),"ticket","update_properties",owner_filter);
            JSONArray owner_array ;
            }

            //*************************


            try 
            {
            owner_array = new editProperties(UPDATE_OWNER_URL).execute().get();     

            String result=owner_array.toString();

            if(result.equals("["success"]"))
            {
            new ticketDetails().execute(); // parse other ticket details using AsyncTask
            //tv_owner.setText(selected_owner); 
            }
            else {Operation.showToast(getApplicationContext(), R.string.error);}                                          

            } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            } catch (ExecutionException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            }

            }

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

            }

            });                 

推荐答案

尝试此操作,被重写的getCount方法将微调控制项数减少1。但仅重写此方法将仅隐藏微调控制框中的最后一项。因此,我们将重写getDropDownView方法以将所有项偏移(上推)1。最终结果将仅隐藏项0(第一项)。

ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.your_spinner_layout, spinnerArray) {

        public View getDropDownView(int position, View convertView, ViewGroup parent) {
            return super.getDropDownView(position + 1, convertView, parent);
        }

        public int getCount() {
            return spinnerArray.size - 1;
        }
    };

这篇关于隐藏微调控制框中的第一项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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