首页 > 解决方案 > 从适配器传递字符串数组列表并获得空结果

问题描述

首先,我会告诉你我的英语非常糟糕,而且是新手。

所以,请耐心等待我:)

StringStringArraylist过关Intent

而且我遇到了问题StringArraylist

数组适配器

    userId = data.get ( getAdapterPosition () ).getUserId ();
    name = data.get ( getAdapterPosition () ).getName ();
    ImageUrl  = data.get ( getAdapterPosition () ).getImageUrl ();

    Intent intent = new Intent (mContext, DisplayActivity.class);
    Bundle bundle = new Bundle ();

    bundle.putString ("userId", userId);
    bundle.putString ("name", name);
    bundle.putStringArrayList ( "ImageUrl ", (ArrayList<String>) ImageUrl );

    intent.putExtras ( bundle );

    Toast.makeText ( mContext, "userId = " + userId, Toast.LENGTH_SHORT ).show ();
    Toast.makeText ( mContext, "name = " + name, Toast.LENGTH_SHORT ).show ();
    for (int i = 0; i < ImageUrl.size (); i++) {
        Toast.makeText ( mContext, "Url " + (i+1) + " = " + ImageUrl.get ( i ), Toast.LENGTH_SHORT ).show ();
    } // Checked all result and everything is fine.

    intent.addFlags ( Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK );
    mContext.startActivity(intent);

所有结果userId nameImageUrl正确获取。

显示活动

    Bundle bundle = getIntent().getExtras();
    assert bundle != null;

    String userId = bundle.getString ( "userId" );
    String name = bundle.getString("name");
    ArrayList<String>ImageUrl = bundle.getStringArrayList ("ImageUrl");

    Toast.makeText ( DisplayActivity.this, "userId is = " + userId, Toast.LENGTH_SHORT ).show ();
    Toast.makeText ( DisplayActivity.this, "Name is = " + name, Toast.LENGTH_SHORT ).show ();
    if (ImageUrl == null) {
        Toast.makeText ( DisplayActivity.this, "ImageUrl = null", Toast.LENGTH_SHORT ).show ();
    } else {
        for (int i = 0; i < ImageUrl.size (); i++) {
            Toast.makeText ( DisplayActivity.this, "Url " + (i+1) + " = " + ImageUrl.get ( i ), Toast.LENGTH_SHORT ).show ();
        }
    }

userId和的字符串值name被传递,并正确显示。

只是ImageUrl得到空结果。

我知道这是一个愚蠢的问题,并且已经有了“这么多”的话题。

但是,我已经尝试过自己

例子 :

数组适配器

intent.putStringArrayListExtra ( "ImageUrl ", (ArrayList<String>) ImageUrl );

显示活动

ArrayList<String> ImageUrl = getIntent().getStringArrayListExtra ("ImageUrl");

没有任何合适的答案并得到相同的结果。

请帮帮我。

我找不到出去的路。;(

标签: javaandroidandroid-intentandroid-arrayadapter

解决方案


对于 put 使用这个

bundle.putStringArrayList("ImageUrl", new ArrayList<>(ImageUrl));

要获取数据,请使用此

bundle.getStringArrayList("ImageUrl")

推荐阅读