Java 如何在depandent微调器中从数据库加载类别的项
我创建了一个类别列表,然后将名称作为字符串保存在适配器中。 我想做的是,如果我从喷丝头1中选择一个类别,我希望喷丝头2显示类别1的项目。 类别和项目是数据库中的两个表Java 如何在depandent微调器中从数据库加载类别的项,java,android,sqlite,activeandroid,Java,Android,Sqlite,Activeandroid,我创建了一个类别列表,然后将名称作为字符串保存在适配器中。 我想做的是,如果我从喷丝头1中选择一个类别,我希望喷丝头2显示类别1的项目。 类别和项目是数据库中的两个表 table category ------------------------- id | name | ------------------------- table item ----------------------------- id
table category
-------------------------
id | name |
-------------------------
table item
-----------------------------
id | name | category_id |
-----------------------------
我使用ActiveAndroid作为ORM。
我解决了这个问题;也许你有一个很好的进步
final Categories categories = null;
final List<Categories> AllCategories ;
AllCategories = (List<Categories>) getAll(categories);
final ArrayList<String> list = new ArrayList<String>();
for (int i=0;i<AllCategories.size();i++) {
String val=AllCategories.get(i).getName().toString();
list.add(new String(val));
}
final ArrayAdapter arrayAdapter;
arrayAdapter = new ArrayAdapter(getActivity(),android.R.layout.simple_spinner_item,list);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dropdown.setAdapter(arrayAdapter);
dropdown.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String category = adapterView.getItemAtPosition(i).toString();
String name = new String(category);
Categories cat = new Categories();
cat.setName(name);
Categories cat1 = getCategoryByName(new String(cat.getName()));
Toast.makeText(getActivity(),"Selected Category : " + category, Toast.LENGTH_LONG).show();
List<Item> listOfItems = getAllItemsInCategoryById(cat1);
final ArrayList<String> listItemString = new ArrayList<String>();
for(int j=0;j<listOfItems.size();j++){
String val = listOfItems.get(j).getName().toString();
System.out.println(val);
listItemString.add(new String(val));
}
final ArrayAdapter arrayAdapter1;
arrayAdapter1 = new ArrayAdapter(getActivity(),android.R.layout.simple_spinner_item,listItemString);
arrayAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dropdown2.setAdapter(arrayAdapter1);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
final Categories categories = null;
final List<Categories> AllCategories ;
AllCategories = (List<Categories>) getAll(categories);
final ArrayList<String> list = new ArrayList<String>();
for (int i=0;i<AllCategories.size();i++) {
String val=AllCategories.get(i).getName().toString();
list.add(new String(val));
}
final ArrayAdapter arrayAdapter;
arrayAdapter = new ArrayAdapter(getActivity(),android.R.layout.simple_spinner_item,list);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dropdown.setAdapter(arrayAdapter);
dropdown.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String category = adapterView.getItemAtPosition(i).toString();
String name = new String(category);
Categories cat = new Categories();
cat.setName(name);
Categories cat1 = getCategoryByName(new String(cat.getName()));
Toast.makeText(getActivity(),"Selected Category : " + category, Toast.LENGTH_LONG).show();
List<Item> listOfItems = getAllItemsInCategoryById(cat1);
final ArrayList<String> listItemString = new ArrayList<String>();
for(int j=0;j<listOfItems.size();j++){
String val = listOfItems.get(j).getName().toString();
System.out.println(val);
listItemString.add(new String(val));
}
final ArrayAdapter arrayAdapter1;
arrayAdapter1 = new ArrayAdapter(getActivity(),android.R.layout.simple_spinner_item,listItemString);
arrayAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dropdown2.setAdapter(arrayAdapter1);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});