Android: запуск новой активности из диалога - PullRequest
0 голосов
/ 13 января 2011

Я пытаюсь использовать пользовательское диалоговое окно, чтобы получить пользовательский ввод для строки заголовка, а затем, если пользователь нажимает кнопку ОК, запускается новая операция (в основном блокнот) с этой строкой заголовка в качестве заголовка. Однако, когда я пытаюсь вызвать метод, который запускает новое действие внутри 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

1 Ответ

0 голосов
/ 13 января 2011

Из того, что я могу сказать, есть проблема с частью Adapter (data) вашего приложения. Какой бы класс адаптера вы не использовали для поддержки вашего com.jin.inventoryapp.ListEdit, у него есть проблемы с доступом к данным. т.е. если вы используете массив или базу данных для заполнения вашего ListView, сначала проверьте там.

Это полезно, чтобы выяснить, кто выдает исключение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...