从自定义对话框插入数据到sqlite

时间:2019-05-21 19:38:49

标签: java android

我一直坚持为自定义对话框类增加价值。 我已经尝试了几种解决方案,但都没有用 我该怎么办?

我创建了一个sqlite类,然后创建了“自定义”对话框 我想从用户创建一个新表,其名称来自“自定义”对话框类中的“编辑文本” 我试图将价值返还给主要活动,但没有成功

这是我的主班

public class Main extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
   }


    public void create(View view) {
        dialog alert = new dialog(Main.this);
        alert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        alert.show();
    }
}

这是我的sqlite课:


public class sqlite extends SQLiteOpenHelper{

    private static final String dbName = "data.db";

    public sqlite(Context context) {
        super(context, dbName, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        onCreate(db);
    }

    public void addTable(SQLiteDatabase db,String tableName){
        db.execSQL("CREATE TABLE IF NOT EXISTS "
                + tableName + " (ID INTEGER AUTOINCREMENT PRIMARY KEY, content TEXT, date DATE);");
    }
}

这是我的自定义对话框类:


public class dialog extends Dialog implements
        android.view.View.OnClickListener {

    public Activity activity;
    public Button yes, no;
    String name;
    EditText createTable;

    public dialog(Activity a) {
        super(a);
        this.activity = a;
        }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.dialog);

        yes = findViewById(R.id.btn_yes);
        no = findViewById(R.id.btn_no);
        yes.setOnClickListener(this);
        no.setOnClickListener(this);

        createTable = findViewById(R.id.createTable);

    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_yes:
                if (name != null){
                    name = createTable.getText().toString();


                   // TODO HERE ( I don't know how to continue )



            } else {
                    Toast.makeText(activity, activity.getString(R.string.please), Toast.LENGTH_SHORT).show();
                }
                break;
            case R.id.btn_no:
                dismiss();
                break;
            default:
                break;
        }
        dismiss();
    }
}

我希望输出将Edittext设置为表的名称,并执行SQLite代码。

0 个答案:

没有答案