gpt4 book ai didi

Android listview checkedtextview

转载 作者:行者123 更新时间:2023-11-30 03:53:08 29 4
gpt4 key购买 nike

我的 Android 应用程序有问题。我正在尝试创建一个 ListView ,每行包含一个 TextView 和一个选中的 TextView 。我已经完成了布局和适配器,它正确显示了所有项目,但我遇到的问题是:我可以完美地检查前 7 个项目(初始可见的项目)但是当我向下滚动以检查其中一个项目时以下项目(一个不可见的初始值)我得到一个空指针异常。我该怎么办?

适配器代码:

private class myAdapter extends ArrayAdapter<Orders> {

private ArrayList<Orders> items;

public myAdapter(Context context, int resource, ArrayList<Orders> items) {
super(context, resource, items);
this.items = items;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.orderslist_row,
null);
}

Orders o = items.get(position);

CheckedTextView txtSymbol = (CheckedTextView) convertView
.findViewById(R.id.checkedTextView1);
txtSymbol.setText(o.getInstrumentID());

CheckedTextView txtQuantity = (CheckedTextView) convertView
.findViewById(R.id.checkedTextView2);
Double qty = o.getQuantity();
txtQuantity.setText(FormatNumber.Number(qty, 0));

if (o.getStatus().toString().equals("Rejected"))
txtQuantity.setTextColor(Color.RED);
if (o.getStatus().toString().equals("Active"))
txtQuantity.setTextColor(Color.GREEN);

return convertView;
}

和 OnItemClickCode:

public void onItemClick(AdapterView<?> adapter, View view, int position,
long id) {
View v = (View)lstOrders.getChildAt(position);
CheckedTextView ctv = (CheckedTextView) v.findViewById(R.id.checkedTextView2);
ctv.toggle();

最佳答案

getChildAt(i) 处理可见的索引集。当您滚动并且位置 3 成为第一个可见行时,它已成为该方法的位置 0。因此,在任何给定时刻,如果屏幕上可以容纳多少个 ListView 行,则最多只允许索引 7。如果您继续使用此方法,有一种方法可以按照您喜欢的方式调整比例,您可以找出第一个可见行索引是什么,然后从总数中减去。 ListView 有这样的方法。

    public void onItemClick(AdapterView<?> adapter, View view, int position,
long id) {
View v = (View)lstOrders.getChildAt(position - lstOrders.getFirstVisiblePosition());
CheckedTextView ctv = (CheckedTextView) v.findViewById(R.id.checkedTextView2);
ctv.toggle();
}

关于Android listview checkedtextview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13819176/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com