相关疑难解决方法(0)

Android Recyclerview与ListView一起使用Viewholder

我最近遇到了RecycleViewAndroid 5.0发布的android ,它似乎RecycleView只是一个封装的传统ListView,其中包含了ViewHolder模式,它促进了视图的重用,而不是每次都创建它.

使用的其他好处是RecycleView什么?如果两者在性能方面具有相同的效果,为什么会选择使用RecycleView`?

编辑

我发现人们提出了类似的问题并且答案没有定论,在这里添加它们以保存记录.

Recyclerview与Listview

我们应该使用RecyclerView来取代ListView吗?

为什么RecyclerView没有onItemClickListener()?和RecyclerView如何与Listview不同?

performance android listview android-recyclerview

142
推荐指数
3
解决办法
10万
查看次数

CheckedTextView在编程选择时不绘制复选标记

我正在编写一个Android应用程序,其中包含带有CheckedTextView项目的ListView.这基本上是一个答案数量可变的问题.如果您选择一个答案,可以按"下一步",然后查看下一个问题.

我已经编写了所有代码来保存答案并转到下一个问题,我还为用户提供了一个"上一个"按钮以回到上一个问题.如果上一个问题已经有答案,我希望选择该答案.这就是问题开始的地方.

现在,我可以获得所选答案的位置,然后我打电话,listView.setItemChecked(pos, true)但未选中单选按钮.

if(selectedAnswer != null) {
    int pos = mAnswerAdapter.getPosition(selectedAnswer);
    if(pos != -1) {
        listAnswers.setItemChecked(pos, true);
    }
}
Run Code Online (Sandbox Code Playgroud)

只有当我执行其他操作时,例如向下拖动状态栏,视图才会刷新并绘制无线电按钮的选定状态.

我在列表中填写如下答案:

mAnswerAdapter = new AnswerArrayAdapter(getContext(), R.layout.listitem_answer, currentQuestion.getAnswers(), user.getLanguage());
listAnswers.setAdapter(mAnswerAdapter);
mAnswerAdapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

以供参考:

list_item布局:

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/listPreferredItemHeightSmall"
    android:drawableStart="@drawable/questionnaire_answer_radio"
    android:drawablePadding="10dp"
    android:gravity="center_vertical"
    android:paddingStart="5dp"
    android:paddingEnd="5dp"
    android:textColor="@android:color/white"
    android:id="@+id/questionnaire_answer_checkbox"/>
Run Code Online (Sandbox Code Playgroud)

适配器:

package be.iminds.mresist;

import android.content.Context;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckedTextView;

import java.util.List;

import be.iminds.mresist.models.QuestionnaireDefinition;
import butterknife.BindView;
import butterknife.ButterKnife;

public class AnswerArrayAdapter extends ArrayAdapter<QuestionnaireDefinition.Answer> …
Run Code Online (Sandbox Code Playgroud)

android listview checkedtextview android-fragments

6
推荐指数
1
解决办法
1319
查看次数