Я пытаюсь использовать пользовательское диалоговое окно, чтобы получить пользовательский ввод для строки заголовка, а затем, если пользователь нажимает кнопку ОК, запускается новая операция (в основном блокнот) с этой строкой заголовка в качестве заголовка. Однако, когда я пытаюсь вызвать метод, который запускает новое действие внутри onClick (), он выдает мне ошибку.
Вот код
class NewListDialog extends Dialog implements OnClickListener {
Button search;
EditText text;
public NewListDialog(Context context) {
super(context);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.newlist_dialog);
search = (Button) findViewById(R.id.dialog_confirm);
text = (EditText) findViewById(R.id.dialog_editable);
search.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v == search) {
String title_name = text.getText().toString();
// method for launching new activity
fireListEdit(title_name);
}
}
}
void fireListEdit(String title_name) {
Intent i = new Intent(this, ListEdit.class);
i.putExtra(InvenDB.KEY_TITLE, title_name);
startActivityForResult(i, ACTIVITY_CREATE);
}
И я вызываю этот диалог с
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch(item.getItemId()) {
case INSERT_ID:
NewListDialog dialog = new NewListDialog(this);
dialog.show();
return true;
case QUIT_ID:
finish();
return true;
}
return super.onMenuItemSelected(featureId, item);
}
Редактировать: когда я запускаю его в эмуляторе, когда я нажимаю ОК в пользовательском диалоговом окне, он просто выдает мне сообщение «приложение остановилось неожиданно»
EDIT:
Это logcat, я не совсем уверен, что они имеют в виду: \
01-12 17: 39: 27.668: ОШИБКА / AndroidRuntime (426): java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.jin.inventoryapp / com.jin.inventoryapp.ListEdit}: android.database. CursorIndexOutOfBoundsException: индекс 0 запрошен, с размером 0