如何获取带有此关键字的List<List<String>>?
How to get List<List<String>> with this keyword?
我有片段,我在其中获取列表中的字符串并将其作为 Bundle 发送到 activity。例如,我得到一个字符串并通过以下方式将其发送到 activity:
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 并将其打包传递?
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;
}
您现在可以像这样在另一个 class 中使用 latestList
:
ViewPageAdapter viewpage = new ViewPageAdapter(response);
List<List<String>> latest_list = viewpage.getLatestList();
要使用捆绑包传递列表,请查看此答案:
您需要在 ViewPageAdapter 声明中使用 implements Parcelable
。
我有片段,我在其中获取列表中的字符串并将其作为 Bundle 发送到 activity。例如,我得到一个字符串并通过以下方式将其发送到 activity:
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 并将其打包传递?
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;
}
您现在可以像这样在另一个 class 中使用 latestList
:
ViewPageAdapter viewpage = new ViewPageAdapter(response);
List<List<String>> latest_list = viewpage.getLatestList();
要使用捆绑包传递列表,请查看此答案:
您需要在 ViewPageAdapter 声明中使用 implements Parcelable
。