【问题标题】:storing selected values of spinner in sqlite在 sqlite 中存储选定的微调器值
【发布时间】:2018-01-11 09:09:45
【问题描述】:

我需要将从微调器中选择的值存储到我在 sqlite 数据库中已经存在的表中。我无法从互联网上得到一个清晰的想法,因为它只显示了如何在 db 中输入微调器值而不是选择的值。这个是实现spinner(static)的代码

 Spinner staticSpinner = (Spinner) findViewById(R.id.static_spinner);

    // Create an ArrayAdapter using the string array and a default spinner
    ArrayAdapter<CharSequence> staticAdapter = ArrayAdapter
            .createFromResource(this, R.array.man_array,
                    android.R.layout.simple_spinner_item);

    // Specify the layout to use when the list of choices appears
    staticAdapter
            .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // Apply the adapter to the spinner
    staticSpinner.setAdapter(staticAdapter);

    Spinner dynamicSpinner = (Spinner) findViewById(R.id.dynamic_spinner);

    String[] items = new String[] {"rate_of_flow", "30", "40", "50" };

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, items);

我的应用程序可以同时使用动态和静态微调器。我没有任何偏好。你能帮帮我吗?

【问题讨论】:

    标签: android sqlite spinner


    【解决方案1】:

    您为什么不简单地获取所选项目并将所选值插入数据库中,就像这里一样

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String selected = parent.getItemAtPosition(position).toString();
                //Code to insert selected string in database
            }
    
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
    
            }
        });
    

    【讨论】:

    • 感谢您的帮助。我尝试实现它并得到此异常 --> java.lang.IllegalStateException: 无法从 CursorWindow 读取第 0 行,列 -1。确保游标在从中访问数据之前已正确初始化。可能是什么问题?
    • 不是这段代码的错,表示getColumnIndex()Cursor中找不到指定的列。看看你在哪里正确使用了getColumnIndex()
    • pipe flowrate = c.getString(c.getColumnIndex(FLOW_RATE)) 这就是我们从 db 中检索值的方式吗?
    • 是的。但请确保 FLOW_RATE 是您的列的正确名称。如果这也不起作用,您可以将01 直接作为表的索引传递,如c.getString(1)
    • 我会试试的。但是我有这个疑问。这个活动包含一个微调器条目以及文本条目。我可以使用相同的数据模型对象将这两个值插入到 db 中吗?
    【解决方案2】:

    试试这个:

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String string = (String) spinner.getItemAtPosition(spinner.getSelectedItemPosition());
                Toast.makeText(YourActivity.this, "Selected Item "+string, Toast.LENGTH_SHORT).show();
    
            }
    
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
    
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      相关资源
      最近更新 更多