2016-11-08 5 views
0

Вот мой код: final Intent intent = new Intent(this, SelectWidgetActivity.class); startActivityForResult(intent, REQUEST_CREATE_APPWIDGET);onActivityResult возвращает нулевое значение getExtra после возвращения назад с разрешения диалога

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (resultCode == RESULT_OK) { 
     String selectedName = data.getStringExtra(SelectWidgetActivity.SELECTED_WIDGET); 
     if(!mAppWidgetManager.bindAppWidgetIdIfAllowed(appWidgetId, info.provider)) { 
        Intent bindIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_BIND); 
        bindIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); 
        bindIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_PROVIDER, info.provider); 
        bindIntent.putExtra(SelectWidgetActivity.SELECTED_WIDGET, selectedName); 
        startActivityForResult(bindIntent, REQUEST_BIND_APPWIDGET); 
     } 
    } 
} 

Я положил строку на первый вызов startActivityForResult и на втором вызове Я пытаюсь получить ту же строку , но получение нулевого значения. Например, при первом вызове выбраноName = «Календарь», второй вызов onActivityResult() selectedName = null

Любые идеи?

ответ

0

вы должны быть даже проверка на requestCode в onActivityResult, что вы посылаете, когда вы делаете этот вызов

startActivityForResult(intent, REQUEST_CREATE_APPWIDGET); 

Попробуйте

if (requestCode == REQUEST_CREATE_APPWIDGET && resultCode == Activity.RESULT_OK) { 
     //do your work here; 
    } 
+0

Я проверил запрос кода при отладке, этот вопрос не существует – user1242192

+0

Выполняете ли вы это (RESULT_OK, намерение) во втором мероприятии, откуда вы ожидаете результата? –

+0

* setResult (RESULT_OK, намерение); –

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

  • Нет связанных вопросов^_^