Я создаю приложение, которое содержит 3 действия, скажем, A, B и C. Активность A - это основное действие, которое запускается при открытии приложения.android Nullpointerexception с данными о намерениях = null всегда
Деятельность A называется Activity B, используя startActivityForResult (цель, 1); Деятельность B возвращает результат, который успешно захвачен, и внутри onActivityResult Activity A, я запускаю Activity C, используя startActivityForResult (намерение2, 2);
Вот мой onActivityResult для деятельности
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
Log.d("MAIN","Inside on activity result requestCode is : " + requestCode);
if(requestCode == 1){
if(resultCode == RESULT_OK){
Log.d("MAINACT", "Inside RESULT CODE OK");
if(data.getStringExtra("puzzleID")!=null){
Log.d("MAINACT", "Inside puzzle has been selected");
String puzzleIdResult = data.getStringExtra("puzzleID");
Intent puzzleIntent = new Intent(MainActivity.this, TrialActivity.class);
puzzleIntent.putExtra("puzzleID", puzzleIdResult);
startActivityForResult(puzzleIntent, 2);
}
}
}else if(requestCode == 2){
Log.d("MAINACT", "Inside request code is 2 result code is : " + resultCode);
if(resultCode == 0){
if(data!=null){
Log.d("MAINACT", "Inside STATUS NOT NULL");
String puzzleStatus = data.getStringExtra("status");
Log.d("MAINACT", "Puzzle status retrieved is : " + puzzleStatus);
if(puzzleStatus.equals("pause")){
Log.d("MAINACT", "Inside puzzle status is paused");
}
}else{
Log.d("MAINACT", "Data is null!!");
}
}
Это возвращаемый результат Intent от активности C
@Override
protected void onPause() {
super.onPause();
Log.d(TRIALTAG, "On Pause CALLED");
Log.d(TRIALTAG, "Sending Intent");
String puzzleID = Integer.toString(puzzle_ID);
Intent returnPause = new Intent();
returnPause.putExtra("status", "pause");
returnPause.putExtra("puzzleid", puzzleID);
if(getParent() == null){
setResult(Activity.RESULT_OK, returnPause);
}else{
getParent().setResult(Activity.RESULT_OK, returnPause);
}
finish();
}
По возвращению из деятельности C, я получаю NullPointerException, и заявление.
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=0, data=null} to activity
{com.mypackagename.sudoku/com.mypackagename.sudoku.MainActivity}: java.lang.NullPointerException
Я положил данные! = Null проверить позже, чтобы предотвратить сбой. Я получаю данные null! теперь каждый раз, когда я останавливаюсь в Activity C. Я пробовал метод getParent после прочтения других решений на SO, но это не помогает. Почему мои данные устанавливаются в Activity B, но не в Activity C? Это мое первое полноценное приложение, поэтому, пожалуйста, извините за незнание.
пожалуйста отступ коды – stinepike
страшного чтение коды чувак .. – Siddharth
жаль бедного indenting..should've сделал его более разборчивым. . @ Shobhit Puri благодарю вас за то, что он убрал его ... сделаю это сам в следующий раз .. – KVNam