[英]Read 3 selected item in the same time
How to read 3 spinner selected item in the same time? 如何在同一时间阅读3个微调器选定的项目? I have
spinner1,2,3
in WorkDetails.java
and their value has been inserted into SQLite
. 我在
spinner1,2,3
中有WorkDetails.java
,它们的值已插入到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
,我想要检出所选项目,并且首先应在spinner project1,project2 and project3
显示所选项目。
UpdatePage.java 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);
}
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. 假设
spinner1
保持值1, spinner2
保持2, spinner3
保持3.当来到updatePage
,spinner project1
应首先显示1,将project2
显示为2,依此类推。 But the problem now is project1,2,and 3 display value 1 first...how can I achieve this? 但问题现在是project1,2,而且3显示值1首先...我怎样才能实现这个目标?
You can try a little bit of logic for this purpose 你可以为此目的尝试一些逻辑
Take three values from the database. 从数据库中取三个值。 Let them be
别理他们
selected_value_of_spinner1
, selected_value_of_spinner2
, selected_value_of__spinner3
selected_value_of_spinner1
, selected_value_of_spinner2
, selected_value_of__spinner3
Then define your method getPosition
as below 然后定义你的方法
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 基本上这里发生的是
You get the value from the database 您从数据库中获取值
You match the value got from database in your spinner to get its position in spinner by getPosition()
method. 您匹配从微调器中的数据库获得的值,以通过
getPosition()
方法在微调器中获取其位置。
Set the spinner value according to the position you get from step 2 by setSelection(position)
method. 根据通过
setSelection(position)
方法从步骤2获得的位置设置微调器值。
Since you are having 3 Spinner
items then you can do this: 由于您有3个
Spinner
项目,因此您可以这样做:
project1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
selectedItem1 = list.get(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
project2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
selectedItem2 = list.get(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
project3.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
selectedItem3 = list.get(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
and declare the: 并声明:
String selectedItem1;
String selectedTtem2;
String selectedItem3;
as global variables. 作为全球变量。 Hope it helps!!!
希望能帮助到你!!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.