2012-05-31 3 views
2

Я думаю, что это простая проблема, но не может найти ответ. я получил этот кусок кода:Функция вызова после завершения намерения

public void onButtonClick(View v) { 

    Intent intent = new Intent(); 
    intent.setAction(android.content.Intent.ACTION_VIEW); 
    File file = new File(root + "/Doppen/"+ "doppen.txt"); 
    intent.setDataAndType(Uri.fromFile(file), "text/*"); 
    startActivityForResult(intent, 1);     
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, getIntent()); 
    if(resultCode==RESULT_OK && requestCode==1){ 
     System.out.println("RESULT :D"); 
    } 
} 

есть какие-либо идеи, что здесь не так?

Открываем текстовый файл, но после того, как пользователь нажал «Сохранить», я хочу вызвать другую функцию. Как это сделать автоматически?
Итак, как проверить, когда пользователь нажимает «Сохранить» или когда намерение сделано/закончено?

EDIT 1: Я нашел проблему: Когда я комментирую if(resultCode==RESULT_OK && requestCode==1){, то он делает печать результат, когда это будет сделано, поэтому я знаю, где он идет не так, теперь почему вопрос: р

EDIT 2:

requestCode делает отпечатки «1», так что это хорошо. Однако resultCode печатает «0», но не хорошо.

EDIT 3:

Найден ответ, может быть также полезно для других.
После того, как я нажал кнопку «Сохранить», я использую подставку (телефона), чтобы вернуться в приложение, но это дает результат «0».

+0

Попробуйте добавить «@Override» перед 'onActivityResult'. – jmhend

+0

@jmhend благодарит за ответ, но не работает – Bigflow

ответ

3

Звоните startActivityForResult() вместо startActivity(). Когда действие завершается, вы получите обратный вызов к вашему методу onActivityResult() вашей деятельности, где вы сможете делать то, что вам нужно.

Для получения дополнительной информации см. the documentation.


EDIT: RESULT_OK стандартный код результата, но действия могут свободно возвращать другие значения больше или равные RESULT_FIRST_USER. Zero - RESULT_CANCELED, что обычно происходит, когда кто-то нажимает кнопку «Назад».

+0

Не могли бы вы проверить мой вопрос еще раз (слегка изменили его), я попробовал это (также использовал интернет-пример), но я не могу заставить его работать :( – Bigflow

+0

@ Bigflow: см. Изменение для моего ответа. – Blrfl

Смежные вопросы