gpt4 book ai didi

spinner - 隐藏微调器中的第一项

转载 作者:行者123 更新时间:2023-12-01 23:59:27 25 4
gpt4 key购买 nike

我在微调器上工作,微调器中有 5 个项目,我只想隐藏微调器中的第一个项目,不是删除,只是隐藏。问题是当我单击微调器时,没有选择一个项目api 通过使用第一个 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;
}
};

关于spinner - 隐藏微调器中的第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40786822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com