【问题标题】:Very unusual "cannot be applied" error非常不寻常的“无法应用”错误
【发布时间】:2018-05-25 09:34:02
【问题描述】:

最初我想说我是编程新手:)。 2 天前,我的应用程序中出现了一个非常奇怪的错误。在我的应用程序的以下活动中。我的代码片段说

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

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

【问题讨论】:

  • 构造函数的第三个参数应该是List<FollowingRow>。您正在尝试传递mFollowing,这是一个ArrayList<String>。字符串列表不是FollowingRow 的列表。

标签: java android string variables


【解决方案1】:

FollowingActivity 构造函数的第三个参数应该是List<FollowingRow>。您正在尝试传递mFollowing,这是一个ArrayList<String>。字符串列表不是FollowingRow 的列表。

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

List<FollowingRow> followingRows = mFollowing.stream()
            .map(FollowingRow::new)
            .collect(Collectors.toList());

(这是使用您的 FollowingRow(String) 构造函数。)

在 Java 8 之前,您可以使用显式循环对其进行转换。

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

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

【讨论】:

  • 好的,但是我应该在哪里添加它,因为它似乎没有帮助:(
  • 嗯,有问题的代码的第一行不再显示错误,但是在第二行中,“适配器”一词仍然用红色下划线
  • 我能得到答案吗?
  • 我在您的问题中发布了问题的答案。我无法解决我没见过的代码中的新问题。
猜你喜欢
  • 2011-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多