隐藏微调控制框中的第一项 [英] Hide first item in the spinner
本文介绍了隐藏微调控制框中的第一项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在处理微调工具,微调工具中有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屋!
查看全文