Articles of listview

Android操作栏使用listview搜索

我是Android开发新手。 我想要的是使用动作栏搜索视图小部件搜索我的列表视图。 我该如何实现搜索function。 我缺少的是搜索function。 我看过一些搜索function,但它基于editText。 请帮忙。 这是我的代码: menu.xml文件 在我的manifest.xml中 <activity android:name=".MainActivity" 在我的MainActivity.java上 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.lv = (ListView) findViewById(R.id.listView); this.databaseAccess = DatabaseAccess.getInstance(getApplicationContext()); this.persons= getPersonList(); Adapter adapter = new Adapter(this, persons); this.lv.setAdapter(adapter); } public List getPersonList(){ databaseAccess.open(); List person= databaseAccess.getPersons(); databaseAccess.close(); return person; } private class Adapter extends ArrayAdapter { public Adapter(Context […]

带有checkbox的Android ListView删除/获取行ID

我正在尝试使用checkbox实现列表视图,以便在选中checkbox时将删除列表行。 我用光标填充列表视图,这很正常,正在显示checkbox。 我遇到的问题是弄清楚如何获取已检查的框的行的_id。 任何人都可以告诉我如何实现这样的事情 ListView和CheckBox Cursor cursor = db.getAllItems(); //String[] columns = new String[] {db.KEY_NAME, db.KEY_CODE, db.KEY_ROWID}; String[] columns = new String[] {db.KEY_ITEM_NAME, db.KEY_MEASUREMENT, db.KEY_UNIT}; int[] to = new int[] {R.id.ingredientName, R.id.ingredientMeasurement, R.id.ingredientUnit}; final SimpleCursorAdapter myCursorAdapter = new SimpleCursorAdapter(this,R.layout.row4, cursor, columns, to, 0); final ListView shoppingList = (ListView) findViewById(R.id.shoppingList); shoppingList.setAdapter(myCursorAdapter); CheckBox deleteCheck = (CheckBox)findViewById(R.id.checkBox1); deleteCheck.setOnCheckedChangeListener(new […]

链接跨度从ListView的convertView中丢失

滚动时为什么ListView中的链接会丢失? 从调试中可以清楚地看到,转换不会在convertView的TextView上第二次添加。 这是从adapter的getView调用的一段代码。 … String body = MyItemDetails.getBody(); // String to linkify final Spannable spannable = MyCustomUri.addHashtagSpans(context, body); viewHolder.textView.setText(spannable); viewHolder.textView.setTextIsSelectable(true); // adds additional spans viewHolder.textView.setMovementMethod(ArrowKeyMovementMethod.getInstance()); viewHolder.textView.setAutoLinkMask(Linkify.WEB_URLS); … MyCustomUri.addHashtagSpans()使用扩展URLSpan创建带有MyCustomSpan URLSpan 。 问题是,当我在ListView上下滚动链接时会丢失。 而当第一次打开屏幕时,它设置正确。 现在我通过禁用convertView重用做了一个脏修复:(任何想法如何更好地解决这个问题?

android恢复在backstack中的片段的实例状态

嗨我有一个有两个片段的活动。 片段A. 片段B 片段A有一个EditText和一个ListView。 一旦我在EditText中输入内容并按Enter键 ,我就会填充ListView。 现在片段A的ListView填充了数据。 单击片段A的ListView上的任何项将将用户发送到片段B. 此时我正在用片段B替换片段A. 因此,当用户按下后退按钮时,他会回到片段A 现在问题是如果用户在片段B中并且配置更改发生像屏幕旋转等不止一次那么我的ListView是空的因为我的arraylist是null。 请注意,我在片段A和片段B中使用onSavedInstanceState。如果我的当前片段是片段A并且发生配置更改,那么恢复状态就没有问题,因为在onCreateView中我从bundle获取了arraylist。 我知道当我从片段B回到之前在后台堆栈中的片段A时,我的arraylist为空的原因。当片段A在backstack中时,被调用的唯一方法是onSaveInstanceState,所以在第一次配置更改后我的arraylist字段为null因为我无法将存储在savedInstateState包中的arraylist分配给arraylist字段。 我不想在清单中使用android:configchanges属性。 我的问题是如何恢复backstack中片段的状态。

ListView with longClick用于显示和隐藏Checkbox?

我在这里阅读了代码(weblink)。 并且代码已经被修改了一点,变成这样: FileArrayAdapter.java public class FileArrayAdapter extends ArrayAdapter { private Context c; private int id; private List items; public FileArrayAdapter(Context context, int textViewResourceId, List objects) { super(context, textViewResourceId, objects); c = context; id = textViewResourceId; items = objects; } public Item getItem(int i) { return items.get(i); } @Override public View getView(int position, View convertView, ViewGroup […]

Spinner删除项目

我已经开发了一个应用程序,其中我有一个编辑文本值的编辑文本输入旋转器按钮单击一个项目我选择删除被删除但问题是,当我删除微调器整个微调器列表刷新的最后一项。 我想只删除所选项目(仅限最后一项) 我的代码如下: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /////////////////////////////////////////////////////////////// // grab our UI elements so we can manipulate them (in the case of the // Spinner) // or add listeners to them (in the case of the buttons) m_myDynamicSpinner = (Spinner) findViewById(R.id.dynamicSpinner); m_addItemText = (EditText) findViewById(R.id.newSpinnerItemText); Button addButton = (Button) findViewById(R.id.AddBtn); Button […]

在轻扫时获取listview的行位置

我知道在此之前会问这类问题。 我试过两个手势探测器: wholelistview.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (gestureDetector.onTouchEvent(event)) { return true; } return false; } }); 它仅检测滑动(此处无法获取行位置)。 同样在getview中: public View getView(int position, View convertView, ViewGroup parent) { //other stuff convertview.setOnTouchListener(same as above); } 但无法检测到滑动。 任何解决方案??? 我只想要进行滑动的行位置。

ListView中的EditText没有它回收输入

还是Android的新手,甚至更多的自定义游标适配器,所以我无法理解如何防止我的listview回收视图,以防止滚动时一个edittext的输入显示在另一个。 我在其他post上看到过要改变转换视图的名称,但是如何做到这一点我正在画一个空白。 我希望有人能够根据我迄今为止编写的代码提供更多详细信息或示例。 public class editview extends ListActivity { private dbadapter mydbhelper; private PopupWindow pw; public static int editCount; public static ListView listView; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mydbhelper = new dbadapter(this); mydbhelper.open(); View footer = getLayoutInflater().inflate(R.layout.footer_layout, null); ListView listView = getListView(); listView.addFooterView(footer); showResults(); […]

使用CursorAdapter维护listview中的checkbox状态

对于我的Android项目,我有一个列表视图,其中包含每个项目的checkbox。 使用CursorAdapter类从SQLite数据库加载数据。 但是,每当我滚动时,checkbox位置将被移动并被传递到列表视图的下一部分。 我该如何解决这个问题? 我的CheckBox问题的GIF这是我的游标适配器类: public class VocabCursorAdapter extends CursorAdapter { private static final int DIFFICULT = 0; private static final int FAMILIAR = 1; private static final int EASY = 2; private static final int PERFECT = 3; public VocabCursorAdapter(Context context, Cursor c, int flags) { super(context, c, 0); } @Override public View newView(Context […]

如何使用可拖动项目制作ListView?

我正在寻找一个ListPreference,用户可以在其中更改列表中的项目顺序。 这些物品可以拖动,并且可以由用户重新订购。 我在我的自定义ROM中看到了这一点(我几乎可以肯定我在Cyanogenmod中看到它)用于QuickPanel。 这是一个截图,通过以下方式获得想法: 我知道如何制作自定义ListView项目并设置图标以指示项目是可拖动的,但我不知道如何使它们可拖动,并相应地更改顺序。 至于在偏好中保存它们,我发现这可以很容易地实现。 PS :我知道Cyanogenmod是开源的,但我找不到这个特殊事物的来源:(我能得到的最接近的是这个 ,它应该在另一个屏幕附近… 提前感谢任何关于此的提示。 更新 :我最终使用了接受的答案中的文件,添加和修改。 我在这里列出它们以供进一步参考。 使用自定义适配器(在我的情况下为ArrayAdapter)来实现此项可拖动的视觉反馈,这是TextView附近的ImageView。 这是可选的。 设置DragListener和RemoveListener以相应地更新列表。 ListView不会自动执行此操作。 这取决于您使用的适配器。 有一行将View转换为ViewGroup,它产生了一些错误,所以我删除了没有任何问题的转换,不需要它。 (在onInterceptTouchEvent方法中)。 改变mRemoveMode = 1; 在TouchInterceptor的构造函数中,或者其中一个: FLING = 0; SLIDE = 1; TRASH = 2; FLING = 0; SLIDE = 1; TRASH = 2; 。 我认为对于TRASH ,资源也应该可用。 我实际上不是从答案的链接中获取文件,而是从我已经拥有的Cyanogenmod中获取文件,但我猜这些文件是相同的。 这些是项目中的实际文件(在撰写本文时的r12): 使用此ListView的首选项 ListActivity与侦听器和适配器 实际的ListView 我希望它可以帮助别人:)