我已经正确地连接了List-Adapter和其他list-item组件.

它没有得到android:idactivity_main_cake_items.xml和给出这个错误.

Cannot resolve symbol 'listviewCakes'

这是我的档案:

MainCakeItems.java

package com.example.dessertshop;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;

import com.example.dessertshop.databinding.ActivityMainBinding;

import java.util.ArrayList;

public class MainCakeItems extends AppCompatActivity {
    ActivityMainBinding binding;
    ListAdapterCakes listAdapterCakes;
    ArrayList<ListDataCakes> dataCakesArrayList = new ArrayList<>();
    ListDataCakes listDataCakes;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = ActivityMainBinding.inflate(getLayoutInflater());
//        setContentView(R.layout.activity_main_cake_items);
        setContentView(binding.getRoot());

        int[] imageCakeList = {R.drawable.vanilla_cake, R.drawable.chocolate_cake, R.drawable.strawberry_cake};
        int[] idCakeList = {R.string.vanillaCakeId, R.string.chocolateCakeId, R.string.strawberryCakeId};
        int[] titleCakeList = {R.string.vanillaCakeTitle, R.string.chocolateCakeTitle, R.string.strawberryCakeTitle};
        int[] detailsCakeList = {R.string.vanillaCakeDetails, R.string.chocolateCakeDetails, R.string.strawberryCakeDetails};
        String[] titleList = {"Vanilla Cake", "Chocolate Cake", "Strawberry Cake"};
        String[] idList = {"01", "02", "03"};

        for (int i = 0; i < imageCakeList.length; i++) {
            listDataCakes = new ListDataCakes(titleList[i],idList[i], imageCakeList[i],idCakeList[i], titleCakeList[i], detailsCakeList[i]);
            dataCakesArrayList.add(listDataCakes);
        }
        listAdapterCakes = new ListAdapterCakes(MainCakeItems.this,dataCakesArrayList);
        binding.listviewCakes.setAdapter(listAdapterCakes);             // ERROR
        binding.listviewCakes.setClickable(true);                       // ERROR

        binding.listviewCakes.setOnItemClickListener(new AdapterView.OnItemClickListener() {  // ERROR
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l){
                Intent intent = new Intent(MainCakeItems.this, DetailsCakes.class);
                intent.putExtra("image", imageCakeList[i]);
                intent.putExtra("id", idCakeList[i]);
                intent.putExtra("title", titleCakeList[i]);
                intent.putExtra("details", detailsCakeList[i]);
                intent.putExtra("title", titleList[i]);
                intent.putExtra("id", idList[i]);
                startActivity(intent);
            }
        });
    }
}

activity_main_cake_items.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background_image"
    tools:context=".MainCakeItems">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/listviewCakes"   // Here it should get the value of the variable from
        android:scrollbars="vertical"
        android:layout_marginStart="10dp"
        android:layout_marginEnd="10dp"
        android:layout_marginTop="12dp"
        tools:listitem="@layout/list_item_cakes"
        android:divider="@android:color/transparent"
        android:dividerHeight="10.0sp">
    </ListView>

</androidx.constraintlayout.widget.ConstraintLayout>

ListAdapterCakes.java

package com.example.dessertshop;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import java.util.ArrayList;

public class ListAdapterCakes extends ArrayAdapter<ListDataCakes> {

    public ListAdapterCakes(@NonNull Context context, ArrayList<ListDataCakes> dataCakesArrayList) {
        super(context, R.layout.list_item_cakes, dataCakesArrayList);
    }

    @NonNull
    @Override
    public View getView(int position, @Nullable View view, @NonNull ViewGroup parent) {
        ListDataCakes listDataCakes = getItem(position);

        if (view == null) {
            view = LayoutInflater.from(getContext()).inflate(R.layout.list_item_cakes, parent, false);
        }

        ImageView listImageCakes = view.findViewById(R.id.listImageCakes);
        TextView listTitleCakes = view.findViewById(R.id.listTitleCakes);
//        TextView listDetails = view.findViewById(R.id.listCakeDetails);
        TextView listCakesId = view.findViewById(R.id.listCakesId);

        listImageCakes.setImageResource(listDataCakes.image);
        listTitleCakes.setText(listDataCakes.title);
//        listDetails.setText(listDataCakes.details);
        listCakesId.setText(listDataCakes.id);

        return view;
    }
}

推荐答案

由于您将布局文件命名为activity_main_cake_items.xml,那么您的绑定名称将是ActivityMainCakeItemsBinding而不是ActivityMainBinding.

就这样.

public class MainCakeItems extends AppCompatActivity {

    ActivityMainCakeItemsBinding binding;
    ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = ActivityMainCakeItemsBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        ...
    }

Java相关问答推荐

如何为具有多对多关系的实体的给定SQL查询构建JPA规范?

Cucumber TestNG Assert失败,出现java. lang. Numbercycle异常

Spring Batch 5-不要让它在数据库中自动创建表

将数组整体转换为链接表

如何在带有Micronaut的YAML中使用包含特殊字符的字符串作为键

流迭代列表<;对象>;上的NoSuchElementException

嵌入式ActiveMQ Artemis Web控制台加载错误

CompleteableFuture是否运行在不同的内核上?

Java LocalTime.parse在本地PC上的Spring Boot中工作,但在Docker容器中不工作

每次FXMLLoader调用ApplationConext.getBean(类)时创建@Component的新实例

在Spring Boot应用程序中,server.port=0的默认端口范围是多少?

如何在透视表中添加对计数列的筛选?

深度优先搜索实现:算法只向右搜索

在Oracle db中,当我们提供字符串而不是数字时,比较是如何工作的?

组合连接以从两个表返回数据

在Java泛型中使用通配符时,如何推断类型

在整数列表中查找和可被第三个整数整除的对时出现无法解释的RunTimeError

我该如何为我的类编写getter和setter方法?

spring 更新多项管理关系

当我try 返回可选时,Mock无法正常工作