尝试在 Android Studio 中创建带有文本的 listView 图像

Posted

技术标签:

【中文标题】尝试在 Android Studio 中创建带有文本的 listView 图像【英文标题】:Trying to Create a listView image with text in Android Studio 【发布时间】:2022-01-16 11:21:22 【问题描述】:
package com.example.test;
import android.content.Context;
import android.provider.DocumentsContract;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class ProgramAdapter extends ArrayAdapter<String> 
    Context context;
    int[] images;
    String[] programName;
    String[] programDescription;
    public ProgramAdapter( Context context, String [] programName,  int[] images, String[] programDescription) 
        super(context, R.layout.single_item, R.id.textView1, programName);
        this.context = context;
        this.images = images;
        this.programName = programName;
        this.programDescription = programDescription; 
    @Override
    public View getView(int position,  View convertView,  ViewGroup parent) 
        View singleItem = convertView;
        ProgramViewHolder holder = null;
        if(singleItem == null)
            LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            singleItem = LayoutInflater.inflate(R.layout.single_item, parent, false);
            holder = new ProgramViewHolder(singleItem);
        singleItem.setTag(holder); 
        else
            holder = (ProgramViewHolder) singleItem.getTag(); 
        holder.itemImage.setImageResource(images[position]);
        holder.programTitle.setText(programName[position]);
        holder.programDescription.setText(programDescription[position]);
        singleItem.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View v) 
                Toast.makeText(getContext(), "You clicked:" + programName[position], Toast.LENGTH_SHORT ).show();
            
        );
        return singleItem;
    

我正在尝试在 Android Studio 中创建带有文本的 Listview 图像。以下行中仅显示一个错误:

singleItem = LayoutInflater.inflate(R.layout.single_item, parent, false);  

我有 3 个类:MainActivity、ProgramAdapter 和 ProgramViewHolder

不能从静态上下文中引用非静态方法“inflate(int, android.view.ViewGroup, boolean)”

【问题讨论】:

请注意格式化How do I format my posts using Markdown or html 的约定。在这种情况下已经为您完成了! 【参考方案1】:

你没有使用layoutInflater对象

LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

LayoutInflater 是一个类。

singleItem = LayoutInflater.inflate(R.layout.single_item, parent, false);

改成

singleItem = layoutInflater.inflate(R.layout.single_item, parent, false);

【讨论】:

以上是关于尝试在 Android Studio 中创建带有文本的 listView 图像的主要内容,如果未能解决你的问题,请参考以下文章

在哪里可以找到系统映像以在 Android Studio 中创建虚拟设备

如何在 Android Studio 中创建自定义图像按钮?

无法在Android Studio中创建Android虚拟设备[关闭]

无法在 android studio 中创建颤振项目

我无法在Visual Studio 2017中创建android密钥库

如何在 Android Studio 中创建测试?