如何在android

时间:2015-08-04 08:08:32

标签: android sql-server android-fragments android-spinner

请帮忙,不能解决这个问题。我不能将片段中的项添加到我的sql数据库中,也不能添加到另一个类中的微调器中。主要的想法是永久地将项目添加到微调器(或直到我手动删除它),所以当我关闭我的应用程序并再次打开它应该在那里。我是初学者,我找不到解决这个问题的方法。我检查了很多类似的帖子,但我真的很困惑,不知道如何让它工作。以下是我的一些代码:

我在主要活动中创建了微调器:

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();

我试图实例化我的新活动并调用它并动态地将一个项添加到微调器但不知道具体如何。添加项目(如果它们在同一个类中)不是问题。问题是如何从另一个活动(片段)调用处理程序(微调器)。它如何影响适配器选项?

请帮忙

1 个答案:

答案 0 :(得分:1)

Spinner可以使用SimpleCursorAdapter作为适配器。如果要向微调器添加新值,可以向DB添加新值,然后刷新适配器光标,它将为微调器加载新值。