非常不寻常的“无法应用”错误

时间:2018-05-25 09:34:03

标签: java android string variables

最初我想说我是编程的新手:)。 2天前我的应用程序中发生了一个非常奇怪的错误。在我的应用程序的FollowingActivity中。我的代码片段说

FollowingActivity adapter = new FollowingActivity(mContext, R.layout.layout_followrow, mFollowing);
        mListView.setAdapter(adapter);

(mContext,R.layout.layout_followrow,mFollowing);带下划线并显示错误。其中一个说:“FollowActivity中的FollowActivity无法应用于”然后显示参数。其中两个是好的,但最后一个(对象)不是。预期参数是FollowingRow,实际参数是“mFollowing(java.util.ArrayList)”之后该行“adapter”也加下划线并说“ListView中的setAdapter(android.widget.ListAdapter)无法应用于FollowActivity”我该怎么办?在这种情况下呢?这是我的代码:

1 个答案:

答案 0 :(得分:1)

FollowingActivity构造函数的第三个参数应该是List<FollowingRow>。您正试图通过mFollowingArrayList<String>。字符串列表不是FollowingRow的列表。

也许您想将字符串列表转换为FollowingRow列表。在Java 8中,您可以使用

执行此操作
List<FollowingRow> followingRows = mFollowing.stream()
            .map(FollowingRow::new)
            .collect(Collectors.toList());

(那是使用你的FollowingRow(String)构造函数。)

Pre-Java 8,您可以使用显式循环对其进行转换。

List<FollowingRow> followingRows = new ArrayList<FollowingRow>(mFollowing.size());
for (String str : mFollowing) {
    followingRows.add(new FollowingRow(str));
}

然后将followingRows传递给您的FollowingActivity构造函数。