- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想删除 ListView (Gmail 样式)中的多个选定项目(行)。如果我选择(使用长单击)一行,则不会发生任何情况。我在互联网上找到了这段代码,并尝试将其插入到我的项目中。
主要 Activity
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_lista, container,
false);
Lista = (ListView) rootView.findViewById(R.id.Lista);
items = new ArrayList<ListViewItem>();
items = GetLists.GetRecordList(rootView.getContext());
adapter = new ListaAdapter(rootView.getContext(),
R.layout.list_view_item, items);
Lista.setAdapter(adapter);
Lista.setMultiChoiceModeListener(this);
Lista.setChoiceMode(Lista.CHOICE_MODE_MULTIPLE_MODAL);
return rootView;
}
@Override
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menu) {
switch (menu.getItemId()) {
case R.id.menu_delete:
SparseBooleanArray selected = adapter.getSelectedIds();
for (int i = (selected.size() - 1); i >= 0; i--) {
if (selected.valueAt(i)) {
ListViewItem selectedItem = adapter.getItem(selected
.keyAt(i));
adapter.remove(selectedItem);
}
}
actionMode.finish();
return true;
default:
return false;
}
}
@Override
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
actionMode.getMenuInflater().inflate(R.menu.delete_menu, menu);
return false;
}
@Override
public void onDestroyActionMode(ActionMode arg0) {
adapter.removeSelection();
}
@Override
public boolean onPrepareActionMode(ActionMode arg0, Menu arg1) {
return false;
}
@Override
public void onItemCheckedStateChanged(ActionMode actionMode, int position,
long arg2, boolean arg3) {
final int checkedOut = Lista.getCheckedItemCount();
actionMode.setTitle(checkedOut + " selezionato");
adapter.toggleSelection(position);
}
这是适配器
public class ListaAdapter extends ArrayAdapter<ListViewItem> {
private Context context;
private ArrayList<ListViewItem> items;
private SparseBooleanArray mSelectedItemsIds;
public ListaAdapter(Context context, int resourceId,
ArrayList<ListViewItem> items) {
super(context, resourceId, items);
mSelectedItemsIds = new SparseBooleanArray();
this.context = context;
this.items = items;
}
private class ViewHolder {
ImageView imageView;
TextView txtTitle;
TextView txtSubTitle;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.list_view_item, null);
holder = new ViewHolder();
holder.txtTitle = (TextView) convertView
.findViewById(R.id.TitoloPrincipale);
holder.txtSubTitle = (TextView) convertView
.findViewById(R.id.Sottotitolo);
holder.imageView = (ImageView) convertView.findViewById(R.id.Image);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
ListViewItem list = getItem(position);
holder.txtTitle.setText(list.getNomeFarmaco());
holder.txtSubTitle.setText(list.getFasceOrarie());
holder.imageView.setImageResource(list.getIcon());
// convertView
// .setBackgroundColor(mSelectedItemsIds.get(position)
// : Color.TRANSPARENT);
return convertView;
}
public void remove(ListViewItem item) {
items.remove(item);
notifyDataSetChanged();
}
public void toggleSelection(int position) {
selectView(position, !mSelectedItemsIds.get(position));
}
public void removeSelection() {
mSelectedItemsIds = new SparseBooleanArray();
notifyDataSetChanged();
}
public void selectView(int position, boolean value) {
if (value)
mSelectedItemsIds.put(position, value);
else
mSelectedItemsIds.delete(position);
notifyDataSetChanged();
}
public int getSelectedCount() {
return mSelectedItemsIds.size();
}
public SparseBooleanArray getSelectedIds() {
return mSelectedItemsIds;
}
你有什么想法吗?谢了
最佳答案
该代码与长按无关。唯一出现的“long”是方法的long
参数。 :-)
This sample project演示基于长按列表行启动的操作模式。关键是onItemLongClick()
:
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
getListView().setItemChecked(position, true);
return(true);
}
在这里(由于将 Activity 注册为 ListView
的 OnItemLongClickListener
),我们打开 CHOICE_MODE_MULTIPLE_MODAL
并检查较长的项目- 单击,从而激 Activity 作模式。
关于java - 在android中删除ListView(cab)中的多个选定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24099454/
好吧,我来到这里作为最后的手段,希望有人知道这个问题的答案,新闻组中没有答案,我已经做了我知道该怎么做的一切,除了我想避免的严重的黑客解决方案. 情况如下: 我有一个 COM 公开的 .NET 类库。
我正在为 SmartDevice 项目创建 CAB 文件(为 Windows Mobile 6 构建)我收到以下错误 Error: CAB file "C:\SmartDevice2\Debug\Sm
此异常有一条错误消息可用,但无法显示,因为这些消息是可选的,并且当前未安装在此设备上。请为 Windows Mobile 5.0 及更高版本安装“NETCFv35.Messages.EN.wm.cab
我读了这个 post关于更换 CABARC 实用程序。 Microsoft 帮助涵盖了 here 中的许多选项. 我需要一个简单的例子,如何使用 makecab.exe 实用程序将 2 个文件添加到
我想删除 ListView (Gmail 样式)中的多个选定项目(行)。如果我选择(使用长单击)一行,则不会发生任何情况。我在互联网上找到了这段代码,并尝试将其插入到我的项目中。 主要 Activit
在我的应用程序中,我有一个 CAB,其中包含四个菜单项。显示其中两个,而另外两个则位于溢出菜单中。在我的代码中,当用户在 ListView 中选择多个项目时,其中一项将被删除。当该项目被删除时,溢出菜
这个问题在这里已经有了答案: Issue with .cab file (ActiveX) installation on Windows Vista and 7 (1 个回答) 关闭 10 年前。
我正在从 Web 表单上传一个 cab 文件,并想在内存中解压它。我尝试用 CabInfo 文件解决这个问题,但没有成功。我知道how to unpack a cab file to my local
我们如何处理 CAB 菜单中的复选按钮? 该项目是否与某些内部 ID(例如 android.R.id.checkbox)相关联? 我读到它可以在 SherlockActionBar CAB 中处理,但
我真的被这个问题困扰了。 我想在 fragment 中使用 CAB,所以我使用 actionMode = ((MainActivity)getActivity()).startActionMode(a
仅在操作模式下可以有拆分操作栏吗? 我的应用程序只有顶部操作栏,但它的上下文操作栏需要一分为二(顶部/底部)。 我发现了这个: The contextual action bar is not nec
我想生成一个.cab文件 我该怎么做? 我正在使用 C#(visual studio 2008、.NET Framework 3.5)进行开发我可以生成 .exe 文件,但是如何生成 .cab? 最佳
我有一个在长按时显示 CAB 的 listActivity。如果选择了超过 1 个项目,我想隐藏我的一个菜单项。 我跟踪在 onItemCheckedStateChanged() 中选择的项目数。但是
我得到了 14K CAB 文件,每个文件包含 200 个文件,需要将这些文件解压缩到它们的原始位置。 不幸的是,这并不像将它们全部提取到同一位置那么容易:-( 我决定使用 PowerShell 并使用
我目前正在尝试为 CD 制作下载/安装文件,而我以前从未这样做过或编写过任何类型的编码,所以我有点不知所措。当我们上次创建安装程序包时(我还没有工作),我们使用了 InstalShield,但那是几十
我有一个带有 .jar 安装程序的应用程序。.jar 文件是安装程序。现在我想为该应用程序制作一个 .cab 文件,并通过 Web 配置使用 Internet Explorer 安装它。我有一个工具,
我希望在手持设备上卸载 cab 应用程序时不删除文件夹中的某些文件。我读到如果您创建自定义安装程序 dll,这是可能的。 我可以在 VS 中创建一个项目,但我不知道我应该在 Uninstall_Ini
我尝试使用自定义适配器实现上下文操作栏(驾驶室)。首先,我用 cab 制作了简单的 ListView 并且它起作用了。其次,我尝试使自定义适配器包含 CheckBox 和 TextView。Check
CAB 在 AppCompatActivity 中运行良好。 我也可以在 DialogFragment (v4) 中使用它吗?如果是这样,我应该使用什么作为启动 Action 模式的上下文?下一条语句
在 Windows Mobile 6 或 CE 5 设备上,我需要安装 CAB 文件,然后启动重启。 我知道自定义操作。您需要使用 native C++ 为 CAB 文件创建一个 setup.dll。
我是一名优秀的程序员,十分优秀!