【问题标题】:Custom listView in Fragment. Layout not found片段中的自定义列表视图。未找到布局
【发布时间】:2020-09-12 01:51:20
【问题描述】:

我在 Fragment 中有一个 listView 并且工作正常。现在我正在尝试做一个自定义 listView 但我找不到。 使用 simple_list_item_1 可以正常工作,但无法使用列表项。

    @Override
public void onActivityCreated(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onActivityCreated(savedInstanceState);

        ListView mListView = (ListView)getActivity().findViewById(R.id.list);
        //mArrayAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, android.R.id.text1, songs);
        mArrayAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.list_item, android.R.id.text1, songs);
        mListView.setAdapter(mArrayAdapter);

}

错误

error: cannot find symbol
    mArrayAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.list_item, android.R.id.text1, songs);
                                                                           ^

符号:变量列表项

【问题讨论】:

  • 在这里发布 logcat 错误
  • 错误:找不到符号 mArrayAdapter = new ArrayAdapter(getContext(), android.R.layout.list_item, android.R.id.text1, song); ^ 符号:变量 list_item
  • 我发布了我的答案
  • 我得到同样的错误
  • 发布您的完整 java 类和 XML 类

标签: java android android-studio android-listview


【解决方案1】:

如果没有崩溃并且您的列表视图未创建,请尝试此操作,

覆盖 onViewCreated() 并在其中声明 listview 并使用 view 而不是 getActivity() 像这样

ListView mListView = (ListView)view.findViewById(R.id.list);

 mArrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.list_item, android.R.id.text1, songs);

在那里复制并粘贴代码

  @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        ListView mListView = (ListView)view.findViewById(R.id.list);
        //mArrayAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, android.R.id.text1, songs);
        mArrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.list_item, android.R.id.text1, songs);
        mListView.setAdapter(mArrayAdapter);
    }

【讨论】:

    【解决方案2】:

    回答

        @SuppressLint("ResourceType")
    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        ListView mListView = (ListView)view.findViewById(R.id.list);
        mArrayAdapter = new ArrayAdapter<String>(getActivity(), R.layout.list_item , R.id.text2, songs);
        mListView.setAdapter(mArrayAdapter);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多