[英]How to pass and retrieve ArrayList<Integer> between two 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的数据中得到了空值,我在哪里做错了? 谢谢
试试这个可能对您有帮助
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");
}
删除super.onBackPressed(); 行中的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();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.