0

我必须将数据从服务器解析到微调器。现在我想从 Spinner 中删除一些值。

这是我的代码。

mytaxList 包括所有值。现在我想检查一下 TaxType 是否是复合的,从微调器中删除该类型的 TaxName 和 TaxValue。实际上我不想在微调器中显示 cound 类型的税。即我想从 ArrayList mytaxList 中删除复合类型税。

JSONObject taxes = returnTaxlist.getJSONObject(TAG_TAXES);

        Object tax ;

         if (taxes.optJSONArray("tax") != null){
                //The result isn't null so it is a JSONArray
                tax = taxes.optJSONArray("tax");
                }
                else
                {
                //The result is null so it isn't a JSONArray
                tax = taxes.optJSONObject("tax");
                }

                if (tax instanceof JSONObject){
                // The object is a JSONObject
                    tax =  taxes.getJSONObject(TAG_TAX);
                }

                    else
                     {
                // The object is a JSONArray

                    tax = taxes.getJSONArray(TAG_TAX);

                    mytaxList = new ArrayList<TaxList>();


                    for(int i = 0; i <=((JSONArray)tax).length(); i++)
                         {
                        if(i==0){
                            TaxList iTaxClass = new TaxList();
                             iTaxClass.setTaxId("");
                             iTaxClass.setTaxName("--Select--");
                             iTaxClass.setTaxType("");
                             iTaxClass.setTaxvalue("");
                             mytaxList.add(iTaxClass);

                             continue;

                        }

                          JSONObject taxlist = ((JSONArray)tax).getJSONObject(i-1);
                          TaxList iTaxClass = new TaxList();

                               //***** Storing each JSON item in variable
                         iTaxClass.setTaxId(taxlist.getString(TAG_TAX_ID));
                         iTaxClass.setTaxName(taxlist.getString(TAG_TAX_NAME));
                         iTaxClass.setTaxType(taxlist.getString(TAG_TAX_TYPE));
                         iTaxClass.setTaxvalue(taxlist.getString(TAG_TAX_VALUE));

                         mytaxList.add(iTaxClass);


                         } 

                            tax1 = (Spinner)findViewById(R.id.item1);
                            tax1.setAdapter(new TaxListAdapter(mytaxList,this));

                            tax1.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {

                             public void onItemSelected(AdapterView<?> parent, View selectedItemView, int position, long id) 
                             {

                                    TaxListAdapter taxlistvalue = (TaxListAdapter)parent.getAdapter();
                                    taxlistvalue.getItemId(position);

                        }

                        public void onNothingSelected(AdapterView<?> arg0) {


                        }
                    });
4

2 回答 2

0

我没有完整的回应,只有一个起点:

tax1.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View selectedItemView, int position, long id){
        //get the selected item
        Object item = tax1.getItemAtPosition(position);

    }
于 2012-07-25T13:32:56.697 回答
0

在添加到税收对象ArrayList的这个条件之前Custom,如果它已经添加对象到数组列表中,则不需要添加。

if( taxlist.getString(TAG_TAX_NAME).equals("Normal") mytaxList.add(iTaxClass);
    mytaxList.add(iTaxClass);   
于 2012-07-26T04:29:55.287 回答