2016-06-13 7 views
0

Это моя первая активностьКак передать и получить ArrayList <Integer> между двумя Intents

ArrayList<Integer> deletedPositions = new ArrayList<>(); 
. 
. 
. 
deletedPositions.add(2); 
Log.d("Deleted Position is: ", " " + deletedPositions); 
// I can see 2 in my Log 


public void onBackPressed(){ 
     super.onBackPressed(); 
     Log.e("----------------->", "Back Pressed"); 
     Intent intent=new Intent(); 
     intent.putExtra("isdeleted",true); 
     intent.putExtra("pos",deletedPositions); 
     setResult(2,intent); 
     finish(); 
    } 

Это моя приемная активность

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     Log.d("----------->","onActivityResult Called " + requestCode + " " + requestCode + " " + data); 
     super.onActivityResult(requestCode, resultCode, data); 
     if(requestCode==2 && data != null) 
     { 
      ArrayList<Integer> positionsToBeRemoved = data.getIntegerArrayListExtra("pos"); 

Но я получаю нуль в данных, которые должны быть 2 Где я делаю это неправильно? Спасибо

+1

Есть взгляд на этот http://stackoverflow.com/questions/13601883/how-to-pass-arraylist-of-objects-from -one-to-another-activity-using-intent-in-an, вы не можете передавать массив таким образом. –

+0

какая ошибка вы получаете в logcat? NPE или ArrayIndexOutOfBoundExp или другие .. – Bharatesh

+0

никаких ошибок. Но при данных, я получаю значение данных как null – Ramesh

ответ

0

Попробуйте это может быть помочь вам

ArrayList<Integer> deletedPositions = new ArrayList<>(); 
Intent intent=new Intent(); 
intent.putExtra("isdeleted",true); 
intent.putIntegerArrayListExtra("pos",deletedPositions); 
setResult(2,intent); 

и получить результат, как

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    Log.d("----------->","onActivityResult Called " + requestCode + " " + requestCode + " " + data); 
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode==2 && data != null) 
    { 
     ArrayList<Integer> positionsToBeRemoved = data.getExtras().getIntegerArrayList("pos"); 

    } 
+0

не работает. Такая же проблема – Ramesh

+0

возникает любое исключение? –

+0

получение null как раньше – Ramesh

0

Удалить super.onBackPressed(); line in onBackPressed метод и проверка.

Первая активность

public class MainActivity extends AppCompatActivity 
{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     startActivityForResult(new Intent(this, Main2Activity.class), 100); 
    } 

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

     if (requestCode==100 && resultCode==100 && data!=null) 
     { 
      System.out.println("pos "+data.getExtras().getIntegerArrayList("pos")); 


     } 
    } 
} 

Вторая активность

public class Main2Activity extends AppCompatActivity 
{ 
    ArrayList<Integer> mDeletedPosLst; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 

     mDeletedPosLst = new ArrayList<>(); 

     mDeletedPosLst.add(1); 
     mDeletedPosLst.add(3); 
     mDeletedPosLst.add(5); 
     mDeletedPosLst.add(6); 
    } 

    @Override 
    public void onBackPressed() 
    { 
     //super.onBackPressed(); 

     Intent intent=new Intent(); 
     intent.putExtra("isdeleted",true); 
     intent.putExtra("pos",mDeletedPosLst); 
     setResult(100,intent); 
     finish(); 
    } 
} 
+0

@Ramesh, он работает? –

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

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