![](/img/trans.png)
[英]already selected item should come selected at next time when I open the same page
[英]Read 3 selected item in the same time
如何在同一时间阅读3个微调器选定的项目? 我在spinner1,2,3
中有WorkDetails.java
,它们的值已插入到SQLite
。 在我的UpdatePage.java
,我想要检出所选项目,并且首先应在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
,spinner project1
应首先显示1,将project2
显示为2,依此类推。 但问题现在是project1,2,而且3显示值1首先...我怎样才能实现这个目标?
你可以为此目的尝试一些逻辑
从数据库中取三个值。 别理他们
selected_value_of_spinner1
, selected_value_of_spinner2
, 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;
}
显示从您的微调器中的数据库获得的值,如下所示
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));
基本上这里发生的是
您从数据库中获取值
您匹配从微调器中的数据库获得的值,以通过getPosition()
方法在微调器中获取其位置。
根据通过setSelection(position)
方法从步骤2获得的位置设置微调器值。
由于您有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) {
}
});
并声明:
String selectedItem1;
String selectedTtem2;
String selectedItem3;
作为全球变量。 希望能帮助到你!!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.