【问题标题】:Trying to Create a listView image with text in Android Studio尝试在 Android Studio 中创建带有文本的 listView 图像
【发布时间】: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)”

【问题讨论】:

标签: java android-studio listview android-inflate


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 2020-01-25
    • 2012-12-11
    • 1970-01-01
    • 2013-12-13
    相关资源
    最近更新 更多