我有自己的布局ListView和CustomCursorAdapter.每行都有自己的复选框.所以...绝对清楚的是,在滚动期间,复选框会松开它们的状态.我发现的唯一的东西是ListView中的Android保存复选框状态与光标适配器,但没有答案.还有一个问题.我的CustorArrayAdapter遇到了同样的问题.我使用SparseBooleanArray解决了这个问题,以保持复选框状态.它工作正常,但每个滚动调用onCheckedChanged.那是正常的吗?这笔交易是我的列表视图描述报警元素和启动(onCheckedChanged的)定期调用/停止报警.许多无意义的行为.
我正在尝试创建一个购物清单,如果您之前已经选择过您的项目,则会检查CheckedTextView,即如果选中该项目的布尔值设置为true.
我已经覆盖了getview方法以使用setText()更改CheckedTextView文本,但是它可以工作,但在CheckedTextView中设置setChecked(true)方法并不会使其检查.
我知道我没有回收getview()中的任何视图,这将是项目中的后续项目,我知道我需要看到一个绿色的复选标记=)
有什么想法吗?请帮忙.
我的xml文件:
的test.xml
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:checkMark="?android:attr/textCheckMark"
android:paddingLeft="5dip"
android:paddingRight="50dip"
android:textColor="#000000"
android:background="#ffffff"
android:tag="text1"
android:text="testtestetstt"
android:focusable="false"/>
Run Code Online (Sandbox Code Playgroud)
listfippel.java
package nu.listfippel.mitt;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import android.app.ListActivity;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.text.Spannable;
import android.text.style.StrikethroughSpan;
import android.text.style.StyleSpan;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CheckedTextView;
import android.widget.ListAdapter;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class listfippel extends ListActivity {
//ArrayList<Ingred> ing; …Run Code Online (Sandbox Code Playgroud) 如何在多焦点列表视图中检索所选项目的位置?该getSelectedItemPosition方法仅返回第一个.
我想我已经尝试了所有东西(使焦点成为可能:假!!)并且无论如何我无法捕捉列表项目中的所选复选框.即使是OnItemClickListener,也不会响应任何点击.
如何在列表项中检索选中的复选框?我的列表项包括:图像视图,4个文本视图和复选框
一些代码:
这是在我的ListActivity类中:
final String columns[] = new String[] { MyUsers.User._ID,
MyUsers.User.MSG, MyUsers.User.LOCATION };
int[] to = new int[] { R.id.toptext, R.id.bottomtext,R.id.ChkBox, R.id.Location};
Uri myUri = Uri.parse("content://com.idan.datastorageprovider/users");
Cursor cursor = getContentResolver().query(myUri, columns, null, null, null);
startManagingCursor(cursor);
ListCursorAdapter myCursorAdapter=new ListCursorAdapter(this,
R.layout.listitem, cursor, columns, to);
this.setListAdapter(myCursorAdapter);
Run Code Online (Sandbox Code Playgroud)
这是我的Custom Cursor适配器类:
public class ListCursorAdapter extends SimpleCursorAdapter
{
private Context context;
private int layout;
public ListCursorAdapter(Context context, int layout, Cursor c,
String[] from, int[] to)
{
super(context, layout, c, from, to);
this.context = context;
this.layout …Run Code Online (Sandbox Code Playgroud)