【问题标题】:How to get List<List<String>> with this keyword?如何使用此关键字获取 List<List<String>>?
【发布时间】:2017-02-10 23:22:31
【问题描述】:

我有片段,我在其中获取 List 中的字符串并将其作为 Bundle 发送到活动。例如,我得到一个字符串并通过以下方式将其发送到活动:

public class ViewPagerAdapter extends FragmentStatePagerAdapter
{
  private CharSequence contentTitle[];

  public ViewPagerAdapter(Response<album> response)
  {
     List<String> listcontentTitle = new ArrayList<>();
     List<List<String>> latest_list = new ArrayList<>();      
     List<String> latestdate = new ArrayList<>();
     List<String> latestcomment = new ArrayList<>();
     for (int i = 0; i < 5; i++) 
     {
        listcontentTitle.add(String.valueOf(response.body().getcontent().get(i).getcontentTitle()));
        latestdate.add(String.valueOf(response.body().getcontent().get(i).getcontentdate()));
        latestcomment.add(String.valueOf(response.body().getcontent().get(i).getcontentcmnt()));
     }
     latest_list.add(latestdate);
     latest_list.add(latestcomment);
     this.contentTitle = listcontentTitle.toArray(new CharSequence[listcontentTitle.size()]);
     // (1) access latest_list with this keyword
  }

  @Override
  public Fragment getItem(int position)
  {
    Fragment Detail=new Detail(mContext);
    Bundle bundle= new Bundle();
    bundle.putString("content_title",contentTitle[position].toString());
    // (2) pass the latest list in bundle
    Detail.setArguments(bundle);
    return Detail;
  }
}

现在我的 (1) 和 (2) 应该是什么才能访问 latest_list 并将其传递到包中?

【问题讨论】:

  • 是的,这是可能的。您可以通过 latest_list.toString() 将 List> 作为参数作为字符串发送到 bundle 中
  • 我如何用这个关键字初始化它,就像我用 this.contentTitle 做的那样
  • @mdg5435 我在 List 中有一个 List 那么如何将它作为 String 发送?它不需要是数组或列表吗?
  • @EJP,反之亦然。这是原件,那是复制品

标签: android list this bundle


【解决方案1】:

1) 你不能在这里使用this。将其设置为方法上方的私有权限,如下所示:

public class ViewPagerAdapter extends FragmentStatePagerAdapter
{
    private CharSequence contentTitle[];
    private List<List<String>> latestList; // This let's you use latestList outside of this ViewPagerAdapter class.
    public ViewPagerAdapter(Response<album> response)
    {
        List<String> listcontentTitle = new ArrayList<>();
        List<List<String>> latest_list = new ArrayList<>();      
        List<String> latestdate = new ArrayList<>();
        List<String> latestcomment = new ArrayList<>();
        for (int i = 0; i < 5; i++) 
        {
            listcontentTitle.add(String.valueOf(response.body().getcontent().get(i).getcontentTitle()));
            latestdate.add(String.valueOf(response.body().getcontent().get(i).getcontentdate()));
            latestcomment.add(String.valueOf(response.body().getcontent().get(i).getcontentcmnt()));
        }
        latest_list.add(latestdate);
        latest_list.add(latestcomment);
        contentTitle = listcontentTitle.toArray(new CharSequence[listcontentTitle.size()]);
        lastestList = lastest_list;
    }
    public List<List<String>> getLatestList(){
        return latestList;
    }

您现在可以像这样在另一个类中使用latestList

ViewPageAdapter viewpage = new ViewPageAdapter(response);
List<List<String>> latest_list = viewpage.getLatestList();

要使用捆绑包传递列表,请查看以下答案:https://stackoverflow.com/a/28197436/4561008

您需要在 ViewPageAdapter 声明中使用 implements Parcelable

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-23
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 2021-07-15
    • 2021-07-07
    相关资源
    最近更新 更多