似乎之前讨论过刷新问题,但没有一个解决方案适合我.
我想做的是: 我正在使用FragmentStatePagerAdapter.适配器的每个位置都包含一个片段,该片段具有象棋状态的线性布局,每个单元格由CheckedTextView表示.
并且应该侦听单击并且删除单元格上的先前选择并进行新选择的侦听器.
什么工作: 每个片段都正确加载所有数据/默认状态(在片段加载到列表时计算)
当我单击一个单元格时,保存的单元格列表中的所有状态都被正确获取,我可以在调试时更改代码中的状态更改.同时我为CheckedTextView指定一个表示单元格的新状态.设置如下:
CheckedTextView cellView = (CheckedTextView) GridRow.getChildAt(c);
cellView.setSelected(false);
cellView.setChecked(false);
cellView.setTag(cellsChess.get(i).get(c));
Run Code Online (Sandbox Code Playgroud)
问题: 即使正确存储和分配了值,也无法刷新视图,视图中单元格的值不会更新.
我试过的提示没有用: 1.调用adapter.notifyDataSetChanged: 只有当我们被覆盖时才可以在使用FragmentStatePagerAdapter时调用:
@Override
public int getItemPosition(Object object){
return POSITION_NONE;
}
Run Code Online (Sandbox Code Playgroud)
2.为DestroyItem添加Overriden方法,并将片段添加到getItem上的Map:
这不适合我正在使用FragmentStatePagerAdapter,因此使用此pagerAdapter的整个目的都将消失.
3.调用invalidate: 这不适合这种情况,我需要实时刷新.
4. instantiateItem()中的setTag()方法: 我不认为这种情况适合.
引用的线程: 在恢复活动时刷新FragmentStatePagerAdapter上的图像
notifyDataSetChanged无法更新ListView
我试图尽可能清楚地说明我的问题,如果有人需要更多澄清,请问.
紧急回复将受到高度赞赏,
干杯
****更新*****
我使用的是ViewPagerIndicator,而不是默认的ViewPager.
android checkedtextview android-fragments android-viewpager fragmentstatepageradapter
在Android 5.0 Lollipop上运行时,我对使用CheckedTextViews的RecyclerView感到沮丧.棒棒糖之前的所有版本都很好,并没有出现这个问题.请查看下面的图片以便更好地理解:


了解Lollipop如何仅在CheckedTextView的复选框部分上绘制选择突出显示?Pre-Lollipop没有此问题/ bug,并在视图的整个宽度上绘制选择突出显示(这是我想要的行为).
这是我正在绘制到列表中的CheckedTextView:
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:background="?attr/selectableItemBackground"
android:checkMark="@drawable/checkbox"
android:id="@+id/model_checkable_name"
android:layout_height="48dp"
android:layout_width="match_parent" />
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我已经尝试了各种不同的解决方案,如极少数android:focusable="false",android:duplicateParentState="true",android:duplicateParentState="false"...
多谢你们!
android checkedtextview android-5.0-lollipop android-recyclerview
我有一个DialogFragment,它有一个带CheckedTextView的列表视图和一个顶部的复选框,用于检查和取消选中列表视图中的所有项目.我试图将CheckedTextView的状态设置为Checked/Unchecked,具体取决于CheckAll复选框的状态.但是我无法使用notifyDataSetChanged相应地更新视图.

CategoriesDialogFragment.java
public class CategoriesDialogFragment extends SherlockDialogFragment {
CheckBox checkAll;
ListView categoriesListView;
CategoriesListAdapter adapter;
static Category category;
String[] categories = new String[] { "Hill Station", "Beach", "Historic",
"Wild Life", "Waterfall", "River", "Archeology", "Hill Station",
"Beach", "Historic", "Wild Life", "Waterfall", "River",
"Archeology" };
Boolean[] categories_state = new Boolean[] { true, false, true, true, true,
true, false, true, false, true, true, true, true, false };
public static CategoriesDialogFragment newInstance() {
CategoriesDialogFragment frag = new CategoriesDialogFragment();
Bundle args = new Bundle();
frag.setArguments(args);
return …Run Code Online (Sandbox Code Playgroud) android checkedtextview android-listview android-dialogfragment notifydatasetchanged
只是一个快速简单的问题,我使用CheckedTextView,我想知道如果有的话,行代码,我可以用什么,放置复选框左侧,而不是右侧.
这是我目前的CheckedTextview代码:
<CheckedTextView
android:id="@+id/ootChild"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="25dp"
android:textSize="17sp"
android:checkMark="@drawable/btn_check_off"
android:clickable="true"
android:checked="false"
android:onClick="toggle"/>
Run Code Online (Sandbox Code Playgroud)
如果没有一种简单或快速的方法,我可以随时使用CheckBox和TextView并将它们放置在我想要的位置.
我正在编写一个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 开发的初学者。当我了解CheckBox时,它是一个扩展复合按钮和CheckedTextView的小部件,小部件扩展了TextView并实现了Checkable Interface。当我在谷歌上搜索时,我没有找到任何结果。实际上,如果我使用具有 CheckBox 功能的 ListView 或 RecyclerView,它们之间有什么区别。CheckBox 和 CheckedTextView 哪个更好?
我正在使用一个我正在使用checkedTextView的应用程序,它都很棒.但我真的不喜欢checkedTextView中"复选框"的布局,它只是很大.有没有办法调整大小或将布局更改为自定义的内容?
我已经尝试过该android:checkMark属性,但这导致它一直被标记,因此一直显示.
我想要一个Multiselected (checked) listview.当我选择一个项目时,必须出现绿色复选标记.为此,我使用CheckedTextViews.在ListView从数据库中获取数据.我正在使用SimpleCursorAdapter它.单击按钮后,所选条目(ID)将传递到下一个活动.
我的问题是CheckedTextView没有出现复选标记.但ID将传递给下一个活动.我究竟做错了什么?怎么解决?
selecttest.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Spinner
android:id="@+id/spinner_select_language"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<Button
style="@style/btn_Font"
android:id="@+id/selecttest_start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/spinner_test"
android:onClick="onClick"
android:text="@string/selecttest_start" />
<ListView
android:id="@+id/lv_lesson"
android:layout_width="match_parent"
android:layout_height="200dp"
android:fadeScrollbars="false"
android:choiceMode="multipleChoice"
android:layout_alignParentLeft="true"
android:cacheColorHint="#00000000"
android:layout_below="@+id/selecttest_start" >
</ListView>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
dataset_ctv_lesson.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<CheckedTextView
style="@style/tv_Font"
android:id="@+id/ctv_lesson"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/none"
android:checkMark="@drawable/ctv_state_checker"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
ctv_state_checker.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false"
android:drawable="@drawable/btn_check_buttonless_off" …Run Code Online (Sandbox Code Playgroud) 在android中我试图使用这个添加checktextview:
CheckedTextView checkedtextview = new CheckedTextView(this, null, android.R.attr.listChoiceIndicatorMultiple);
checkedtextview.setText(personobj.lastname + ", " + personobj.firstname);
LocationLayout.addView(checkedtextview);
Run Code Online (Sandbox Code Playgroud)
但是当我测试它时,它只显示文本而我没有看到复选框.有谁知道如何显示复选框?
谢谢.
我有一个ListView,每行包含一个CheckedTextView.我正在使用自定义checkMark属性,该属性使用drawable:
<CheckedTextView
android:id="@+id/body"
android:gravity="left"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:layout_below="@+id/date"
android:textSize="18sp"
android:checkMark="@drawable/checkbox_selector"
/>
Run Code Online (Sandbox Code Playgroud)
drawable checkbox_selector按预期正确处理'on'和'off'选项,如下所示:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_selected="true" android:state_pressed="true"
android:drawable="@drawable/checkbox_on" >
</item>
<item android:state_pressed="true" android:drawable="@drawable/checkbox_on" />
<item android:state_checked="true" android:drawable="@drawable/checkbox_on"/>
<item android:drawable="@drawable/checkbox_off" />
</selector>
Run Code Online (Sandbox Code Playgroud)
以下是当前ListView布局的屏幕截图:

如您所见,复选框顶部对齐.有没有办法让它正中心呢?检查选择器资源的属性,我找不到任何相关的属性来执行此操作.
有什么方法可以调整它的位置吗?感谢您的时间.