【问题标题】:Issue In Custom ListView自定义列表视图中的问题
【发布时间】:2018-09-21 12:33:22
【问题描述】:

我制作了一个自定义 ListView,它显示了一个货币列表(Image + TextView + LinearLayout 必须价格:1 表示卖出货币,1 表示买入)。 但不幸的是,应用程序崩溃了,然后我打开 LogCat 看到错误,但什么也没找到。 我已附上我的文件以供检查。从下一个包适配器开始

package adapters;

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

import com.example.aboomar.bekamelnaharda.R;

import java.util.ArrayList;

import models.CurrencyModel;

public class CurrencyAdapter extends BaseAdapter {
Context context;
ArrayList<CurrencyModel> currencyModelArrayList;
CurrencyModel currencyModel = new CurrencyModel();

public CurrencyAdapter(Context context, ArrayList<CurrencyModel> 
currencyModelArrayList) {
this.context = context;
this.currencyModelArrayList = currencyModelArrayList;
}

public CurrencyAdapter() {
}


@Override
public int getCount() {
return currencyModelArrayList.size();
}

@Override
public CurrencyModel getItem(int position) {
return currencyModelArrayList.get(currencyModel.getId());
}

@Override
public long getItemId(int position) {
return getItem(currencyModel.getId()).getId();
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

LayoutInflater layoutInflater = (LayoutInflater) 
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = 
layoutInflater.inflate(R.layout.currency_list_item,parent,false);
currencyModel = getItem(currencyModel.getId());

ImageView imageViewCurrency = 
convertView.findViewById(R.id.imageCurrencyIv);
imageViewCurrency.setImageResource(currencyModel.getCurrencyImage());

TextView currencyNameTv = convertView.findViewById(R.id.nameCurrencyTv);
currencyNameTv.setText(currencyModel.getCurrencyTv());

TextView currencyBuyTv = convertView.findViewById(R.id.buyPriceTv);
currencyBuyTv.setText(currencyModel.getCurrencyPriceBuy());

TextView currencySellTv = convertView.findViewById(R.id.sellPriceTv);
currencySellTv.setText(currencyModel.getCurrencyPriceSell());


return null;
}
}

【问题讨论】:

    标签: android listview baseadapter


    【解决方案1】:

    您在 getView 方法中返回 null,但应该返回 convertView

    【讨论】:

    • 已经解决了,但是按下其中一个项目后又出现了另一个问题,应用程序崩溃并显示此错误。进程:com.example.aboomar.bekamelnaharda,PID:30648 java.lang.IndexOutOfBoundsException:索引:7,大小:7 at java.util.ArrayList.get(ArrayList.java:437) at adapters.CurrencyAdapter.getItem(CurrencyAdapter. java:38) 在 adapters.CurrencyAdapter.getItemId(CurrencyAdapter.java:43)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 2012-12-15
    • 1970-01-01
    • 2011-10-13
    • 2023-03-13
    • 1970-01-01
    • 2016-04-15
    相关资源
    最近更新 更多