我一直坚持为自定义对话框类增加价值。 我已经尝试了几种解决方案,但都没有用 我该怎么办?
我创建了一个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代码。