我在主要活动中创建了微调器:
spinner= (Spinner)findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);
loadSpinnerData();
public void loadSpinnerData() {
MyDBHandler db = new MyDBHandler (getApplication());
ArrayList<projectNames> list = db.getAllLabels();
ArrayAdapter<projectNames> adapterFrom = new ArrayAdapter<projectNames>(this,android.R.layout.simple_spinner_item, list)
{
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View view = super.getView(position, convertView, parent);
// Get item at position
projectNames model = getItem(position);
// Set textview's value with the category name
TextView textView = (TextView) view.findViewById(android.R.id.text1);
textView.setText(model.get_name());
return view;
}
};
adapterFrom.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapterFrom);
}
现在当我打开新的对话框片段时,我想在buttonclick中将项目添加到前一个类中的微调器和我的SQL数据库(或者我的SQL,然后从它到spinner - 无论更好/更容易):
Sql代码:
public class MyDBHandler extends SQLiteOpenHelper{
private static final int DATABASE_VERSION=1;
private static final String DATABASE_NAME="projects.db";
private static final String TABLE_PRODUCTS="projects";
private static final String COLUMN_ID="_id";
private static final String COLUMN_PRODUCTNAME="name";
public MyDBHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
我为Sql提供了其他常规方法但不想在这里发布它因为它将是一堆代码。如果需要,请询问。
到目前为止,我已经将代码添加到了碎片器中的spinner:
MainActivity newSpinner = new MainActivity();
addThisToSpinner = newSpinner.spinner;
newSpinner.loadSpinnerData();
我试图实例化我的新活动并调用它并动态地将一个项添加到微调器但不知道具体如何。添加项目(如果它们在同一个类中)不是问题。问题是如何从另一个活动(片段)调用处理程序(微调器)。它如何影响适配器选项?
请帮忙
答案 0 :(得分:1)
Spinner可以使用SimpleCursorAdapter作为适配器。如果要向微调器添加新值,可以向DB添加新值,然后刷新适配器光标,它将为微调器加载新值。