我想显示一个显示来自 SQLite DB 的数据的 Android Spinner。
但是,用户应该能够向此 Spinner 添加新项目。
在 iPhone / iOS 上,我使用 ActionSheetPicker 来实现这个目标。它看起来像这样:
如何用Android做到这一点?
我想显示一个显示来自 SQLite DB 的数据的 Android Spinner。
但是,用户应该能够向此 Spinner 添加新项目。
在 iPhone / iOS 上,我使用 ActionSheetPicker 来实现这个目标。它看起来像这样:
如何用Android做到这一点?
不确定它是否适用于 CursorAdapter 但以下代码与iOS 上
的 UIPicker 大致相同:
该代码执行以下操作:
添加按钮创建另一个带有 EditText(文本字段)的弹出窗口
ArrayList<String> items = new ArrayList<String>();
items.add("One");
items.add("Two");
items.add("Three");
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item, items);
final Button selectBtn = (Button) findViewById(R.id.buttonCountry);
selectBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(@SuppressWarnings("unused") View v) {
new AlertDialog.Builder(main)
.setTitle("Please choose a country")
.setPositiveButton("Add Country", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
final EditText view = new EditText(main);
new AlertDialog.Builder(main)
.setTitle("Please enter a name")
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
adapter.add(view.getText().toString());
selectBtn.setText(view.getText().toString());
}
})
.setNegativeButton("cancel", null)
.setView(view)
.show();
}
})
.setAdapter(adapter, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
selectBtn.setText(adapter.getItem(which));
dialog.dismiss();
}
}).create().show();
}
});
以下是结果图片:
活动:
带有微调器和按钮的 AlertDialog:
带有文本输入的 AlertDialog: