我有一个ListView子类,当上下文操作栏(CAB)处于活动状态时,允许进行select。 CAB被设置为onItemLongClick事件的callback: public boolean onCreateActionMode(ActionMode mode, Menu menu) { // Inflate a menu resource providing context menu items MenuInflater inflater = mode.getMenuInflater(); inflater.inflate(context_menu, menu); getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); return true; } 这很好,ListView按预期工作,当前选定的项目在触摸时保持突出显示。 当我closuresCAB时, 我希望ListView恢复正常(即触摸模式) 。 问题是最后select的项目无限期地保持高亮显示,无论我尝试清除它的方法: public void onDestroyActionMode(ActionMode mode) { //Unselect any rows ListView lv = getListView(); lv.clearChoices(); // Has no effect lv.setChoiceMode(ListView.CHOICE_MODE_NONE); // Has no effect […]
经过几天的阅读和尝试后,我放弃并寻求帮助。 我正在使用ActionBarSherlock。 </ edit> 我想实现的是:一个ListView,每行都有一个自定义的布局,用户可以select多个列表项。 选定的列表项目应具有不同的背景颜色。 当至lessselect一个项目时,应显示一个上下文操作栏(CAB)。 它应该看起来或多或less像GMail应用程序中的多个电子邮件select。 唯一的区别是,在Gmail应用程序的select是通过单击一行的checkbox来完成,而我不想有一个checkbox,但是应该select一行,无论用户点击的地方。 我所尝试的:按照这个教程 ,当检查状态被切换时,使用带有逻辑的Checkable行布局来更改背景颜色,除了我无法在ListView上注册像OnItemClickListener这样的单击监听器来显示CAB 。 既无法为每行查看提供点击侦听器,因为这阻止了更改所选项目的背景颜色。 我也尝试像这样添加一个MultiChoiceModeListener到ListView listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); listView.setMultiChoiceModeListener(new MultiChoiceModeListener() { //.. }); 同样的结果,没有背景颜色的变化。 我在找什么 :提示或教程或示例代码如何做到这一点。 如果你需要一些代码片段来帮助,让我知道。
我有一个ListView在我的第二activity.OnItemClick它,我叫一个web服务,并试图获取数据。 之后,我正在移动到第三个活动,这也有一个ListView有以前的活动ListView项目的描述。 我想在填充这个ListView之前显示一个进度对话框。 我不明白如何在ListView上做到这一点? 有人知道该怎么做吗? 我的代码 – ThirdActivity.java package com.google.iprotect; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.xmlpull.v1.XmlPullParserException; import com.google.iprotect.layout.TitleBarLayout; import android.app.Activity; import android.app.ListActivity; import android.app.ProgressDialog; import android.content.Intent; import android.content.res.ColorStateList; import android.content.res.XmlResourceParser; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.LinearLayout; import […]
我的目标是显示已安装的应用程序列表(在一个活动中 )的自定义列表视图没有checkbox得到取消选中(当列表视图滚动时)。 问题 : 当ListView滚动时,checkbox的选中状态变为未选中状态。 我的进展到目前为止 :虽然这个博客条目清楚地显示了如何摆脱列表视图中的checkbox取消选中的问题,不同的是,它使用模型作为自定义类,而在我的情况下,它是一个系统类[即packageList1 = packageManager.getInstalledPackages(0);] 我该如何解决这个问题? 以下是我的代码尝试。 我能够用checkbox成功显示listviw中的应用程序,只是在滚动列表视图时检查状态变得没有选中。 我是开放给任何方法作为答案,使我能够显示安装的应用程序在列表视图列表中没有检查状态的checkbox将成为未经检查 我的自定义Listadapter类 : public class Listadapter extends BaseAdapter { private static String TAG = "focus"; List<PackageInfo> packageList; Activity context; PackageManager packageManager; boolean[] itemChecked; List<String> appNamestoBlock_local; public Listadapter(Activity context, List<PackageInfo> packageList, PackageManager packageManager, List<String> appNamestoBlock) { super(); this.context = context; this.packageList = packageList; this.packageManager […]
在我的应用程序我使用自定义列表视图适配器 在列表视图项目中,我添加了另一个布局。 因为在我的服务中,一个订单有任何数量的订单项目。 为了显示订单项目,我将下面的订单项目布局添加到自定义列表视图item.it工作正常。 但是当滚动列表视图数据被改变。 适配器类: public class PreviousDataAdapter extends BaseAdapter { ArrayList<PreviousOrderData> bpData; private ArrayList<PreviousOrderData> arraylist; ArrayList<OrderItemData> opData; private ArrayList<OrderItemData> arraylist1; private Activity activity; private LayoutInflater inflater; String g_orderid; DatabaseHandler db; SharedPreferences m_sharedPreference; SharedPreferences.Editor m_editor; ArrayList<String> circless = new ArrayList<String>(); public PreviousDataAdapter(Activity activity, ArrayList<PreviousOrderData> bpData,ArrayList<OrderItemData> opdata) { // TODO Auto-generated constructor stub this.activity = […]
我需要突出显示选中的ListView中的一行(向用户显示他select的内容),因此,不是要select的那个,而是他之前select的那个。 我已经有了位置: ListView.setSelection(position); 而现在我想要的是select这个特定的行,并突出显示它。 包含ListView的活动中onCreate()的代码: public class CountryView extends Activity { protected static final String LOG_TAG = null; /** Called when the activity is first created. */ String[] lv_arr = {}; ListAdapter adapter; TextView t; private ListView lvUsers; private ArrayList<Coun> mListUsers; String responce=null; public int d; int selectedListItem = -1; @Override public void onCreate(Bundle savedInstanceState) […]
我有一个ListView显示我通过数组(这是在另一个类,我通过它的对象访问它)的一些数据。 每当我通过上下文菜单从ListView中删除一个元素时,这个列表不会刷新,而是从数组中删除这个元素。 我如何刷新列表来显示这个? 码: public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { if (v.getId()==R.id.mainListView) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo; post=info.position; menu.setHeaderTitle(stocks[info.position]); String[] menuItems = stt; for (int i = 0; i<menuItems.length; i++) { menu.add(Menu.NONE, i, i, menuItems[i]); } } } @Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); int menuItemIndex = item.getItemId(); […]
在ExpandableListView ,有没有办法隐藏没有孩子的组的组指示符?
我试图在listView上使用marginBottom来在listView Item之间留出空间,但是仍然把这些项目连接在一起。 这甚至有可能吗? 如果是的话,有没有一个具体的方法来做到这一点? 我的代码如下 <LinearLayout android:id="@+id/alarm_occurences" android:layout_width="fill_parent" android:orientation="vertical" android:layout_height="fill_parent" android:background="#EEEEFF" xmlns:android="http://schemas.android.com/apk/res/android"> <ListView android:id="@+id/occurences" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> 我的自定义列表项目: <com.android.alarm.listItems.AlarmListItem xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/alarm_item_background" android:layout_marginBottom="10dp" > <CheckedTextView android:id="@android:id/text1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:checkMark="?android:attr/listChoiceIndicatorMultiple" android:textSize="20sp" android:textStyle="bold" android:typeface="serif" android:padding="10dp" /> </com.android.alarm.listItems.AlarmListItem> 在这种情况下,我怎样才能在列表项之间进行间隔?
嗨,我知道有这个问题的答案。 我已经尝试了所有这些,但它不适用于我的应用程序。 我正在开发一个有3个片段活动的应用程序。 第一个片段显示一个网站,第二个片段有listview,第三个片段有另一个listview。 现在我想从第三个片段发送URL到用户点击listitem时的第一个片段。这就是我所做的。 我从这个片段发送stringURL到第一个片段。 list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter, View view, int position, long id) { FragmentC fragment = new FragmentC(); final Bundle bundle = new Bundle(); bundle.putString("position", "http://www.facebook.com"); fragment.setArguments(bundle);} }); 这是第一个片段,我需要的url,并希望在web视图中显示。 String url="http://www.hotelsearcher.net/"; Bundle args = getArguments(); if (args != null){ url = args.getString("position"); } WebView webView= (WebView) V.findViewById(R.id.webView1); […]