【问题标题】:How to set String value to spinner from sqlite?如何从 sqlite 将字符串值设置为微调器?
【发布时间】:2016-03-02 17:06:16
【问题描述】:

这是我的要求,我需要从 sqlite 设置字符串并将其分配给微调器,当我单击此处的编辑按钮时,我真的很困惑如何执行此操作,它将转到下一个活动,我将检索我已将值设置为 edittext 的所有值但无法为微调器设置值到目前为止我怎么能这样做我尝试过的是:

    RequestQueue queue_company_name = Volley.newRequestQueue(getBaseContext());
    final ArrayList<Model_Account> arrayobj_company_name = new ArrayList<Model_Account>();
    String Url_company_name = "http://xxx/xxx/xxx/AcoountCreatePageLoad.svc/Account/Accouxxxt";
    JsonObjectRequest jsonObjRequest_company_name = new JsonObjectRequest(Request.Method.GET, Url_company_name, new JSONObject(),
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    String server_response = response.toString();
                    try {
                        JSONObject json_object = new JSONObject(server_response);
                        JSONArray json_array = new JSONArray(json_object.getString("AccountPageLoadAccountListResult"));
                        for (int i = 0; i < json_array.length(); i++) {
                            Model_Account model_spinner = new Model_Account();
                            JSONObject json_arrayJSONObject = json_array.getJSONObject(i);
                            model_spinner.setName(json_arrayJSONObject.getString("CompanyName"));
                            model_spinner.setCompanyname(json_arrayJSONObject.getInt("AccountID"));
                            arrayobj_company_name.add(model_spinner);

                        }


                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(getBaseContext(), error.toString(), Toast.LENGTH_SHORT).show();

                }
            });

    //Creating request queue

    queue_company_name.add(jsonObjRequest_company_name);

    ArrayAdapter<Model_Account> company_names = new ArrayAdapter<Model_Account>(this, android.R.layout.simple_spinner_dropdown_item, arrayobj_company_name);
    spinner_company_name.setAdapter(company_names);
final Bundle extra = getIntent().getExtras();
if (extra != null) {

    id = extra.getInt("id");

    Cursor edit_accnt = account_sf_db.getData(id);
    if (edit_accnt.moveToFirst()) {
        do {


            compny_group.setText(edit_accnt.getString(edit_accnt.getColumnIndex(Model_Account.company_groups)));
            company_name.setText(edit_accnt.getString(edit_accnt.getColumnIndex(Model_Account.Parent_company)));
            addrss1.setText(edit_accnt.getString(edit_accnt.getColumnIndex(Model_Account.Address_line1)));
            address_2.setText(edit_accnt.getString(edit_accnt.getColumnIndex(Model_Account.Address_line2)));
            address_3.setText(edit_accnt.getString(edit_accnt.getColumnIndex(Model_Account.Address_line3)));
            pin_code.setText(edit_accnt.getString(edit_accnt.getColumnIndex(Model_Account.Pincode)));
            land_line.setText(edit_accnt.getString(edit_accnt.getColumnIndex(Model_Account.Landline1)));
            landline_2.setText(edit_accnt.getString(edit_accnt.getColumnIndex(Model_Account.Landline2)));
            url.setText(edit_accnt.getString(edit_accnt.getColumnIndex(Model_Account.Url)));
            email.setText(edit_accnt.getString(edit_accnt.getColumnIndex(Model_Account.Landline2)));
            String match = edit_accnt.getString(edit_accnt.getColumnIndexOrThrow(Model_Account.Company_name));
            Log.e("test",match);
        } while (edit_accnt.moveToNext());



    }
}

如何将匹配设置为与此相关的适配器公司名称可以有人帮助我!

【问题讨论】:

    标签: android sqlite spinner


    【解决方案1】:

    首先,使用适配器获取要设置为微调器的字符串的位置

    int position = spinnerAdapter.getPosition(json_arrayJSONObject.getString("CompanyName"));
    

    之后,在带有位置的微调器中选择

    spinner.setSelection(position);
    

    希望这对你有用。

    【讨论】:

    • 那是因为你要设置的字符串的位置会返回-1,表示spinner没有那个项目
    • 是的,这就是我在上面的评论中所说的。如果微调器没有该项目,您将获得它的位置为 -1。
    • 那么如何改正
    • 最初,您必须将所有数据值设置到您的微调器。一旦您调用 API,因此在您的 API 响应中,您将使用 spinnerAdapter 从微调器获取数据字符串的位置
    • 那么如何做到这一点,因为我正在为此苦苦挣扎
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 2023-04-09
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    相关资源
    最近更新 更多