阅读3所选项目的同时 [英] Read 3 selected item in the same time

查看:199
本文介绍了阅读3所选项目的同时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何阅读3微调的同时选择的项目?我有 spinner1,2,3 WorkDetails.java ,其价值已经被插入到 SQLite的。在我的 UpdatePage.java ,我想要检索选定的项目出来,所选择的项目应微调首先显示 PROJECT1,项目2和项目3

How to read 3 spinner selected item in the same time? I have spinner1,2,3 in WorkDetails.java and their value has been inserted into SQLite. In my UpdatePage.java, I want to retrieve the selected item out and the selected item should be displayed first in spinner project1,project2 and project3.

UpdatePage.java

public void RetrievePage(String name,String date, String id) {
    final String name2 = name;
    final String date2=date;
    final String id2 = id;
    final EditText name3 = (EditText) findViewById(R.id.editText9);
    final EditText date3 = (EditText) findViewById(R.id.editText12);
    name3.setText(name2);
    date3.setText(date2);

    database = dbHelper.getWritableDatabase();
    c = database.rawQuery(
        "SELECT i.Weather, i.Status,w.Subcontractors, w.NumberOfPerson,"+
        "w.NumberOfHours, wd.Project, wd.WorkDescription, wd.Per,"+
        "wd.TimeIn, wd.TimeOut FROM Information i LEFT JOIN WorkForce w "+
        "ON w.TInfo_id = i._id "+
        "LEFT JOIN WorkDetails wd ON wd.Twf_id=w._id "+
        "WHERE i.Name = ? AND i._id= ? ",
        new String[]{String.valueOf(name2),String.valueOf(id2)}, null);
    if (c != null) {
        while (c.moveToNext()) {
            Details WD = new Details();
            String Project11 = c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Project));
            String Project22  =c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Project));
            String Project33  =c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Project));

            addProject1(Project11);
            addProject2(Project22);
            addProject3(Project33);
            WD.setProject(Project11);
            WD.setProject(Project22);
            WD.setProject(Project33);
        }
    }
    c.close();
}

public void addProject1(String l) {
    project1 = (Spinner) findViewById(R.id.spinner8);
    String[] arr = new String[]{"1","2","3"};
    List<String> list = new ArrayList<String>();
    String project11 = l;
    list.add(project11);
    for (String s : arr) {
        if (!list.contains(s)) {
            list.add(s);
        }
    }
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(UpdatePage.this, android.R.layout.simple_spinner_dropdown_item, list);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    project1.setAdapter(adapter);
}

public void addProject2(String d) {
    project2 = (Spinner)findViewById(R.id.spinner9);
    String[] arr = new String[]{"1","2","3"};
    List<String> list = new ArrayList<String>();
    String project22 = d;
    list.add(project22);
    for (String s:arr) {
        if(!list.contains(s)) {
            list.add(s);
        }
    }
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(UpdatePage.this, android.R.layout.simple_spinner_dropdown_item, list);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    project2.setAdapter(adapter);
}

public void addProject3(String e) {
    project3 = (Spinner)findViewById(R.id.spinner13);
    String[] arr = new String[]{"1","2","3"};
    List<String> list = new ArrayList<String>();
    String project33 = e;
    list.add(project33);
    for (String s:arr) {
        if (!list.contains(s)) {
            list.add(s);
        }
    }
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(UpdatePage.this, android.R.layout.simple_spinner_dropdown_item, list);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    project3.setAdapter(adapter);
}

假设 spinner1 持有价值1, spinner2 持有2和 spinner3 持有3.当来到的updatePage ,微调 PROJECT1 应显示1首,项目2 显示2,依此类推。但现在的问题是project1,2,和3显示值1次先...我怎么能做到这一点?

Assume spinner1 holds value 1, spinner2 holds 2 and spinner3 holds 3. When come to updatePage, spinner project1 should display 1 first, project2 display 2 and so on. But the problem now is project1,2,and 3 display value 1 first...how can I achieve this?

推荐答案

您可以尝试的逻辑有点为这个目的

You can try a little bit of logic for this purpose

取三个值从数据库中。让他们成为

Take three values from the database. Let them be

<$c$c>selected_value_of_spinner1,<$c$c>selected_value_of_spinner2,<$c$c>selected_value_of__spinner3

然后定义你的方法为getPosition 如下

public int getPosition(Spinner your_spinner, String string_value){

    int position = 0;

    for (int i=0;i<your_spinner.getCount();i++){
        if (your_spinner.getItemAtPosition(i).equals(string_value)){
            position = i;
        }
    }
    return position;
    }

值从数据库中有你的纺纱像下面这个节目

The show the values got from the database in your spinners like following

your_spinner1.setSelection(getPosition(your_spinner1, selected_value_of_spinner1));
your_spinner2.setSelection(getPosition(your_spinner2, selected_value_of_spinner2));
your_spinner3.setSelection(getPosition(your_spinner3, selected_value_of_spinner3));

基本上,这里所发生的是

Basically what happens here is

  1. 您从数据库中获得的价值

  1. You get the value from the database

您匹配从数据库中的值有你的微调由来获得它在微调的位置为getPosition()方法。

You match the value got from database in your spinner to get its position in spinner by getPosition() method.

根据你从第2步得到的位置由 setSelection(位置)方法设置微调值。

Set the spinner value according to the position you get from step 2 by setSelection(position) method.

这篇关于阅读3所选项目的同时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆