Articles of listview

为什么android的String.format狗慢?

我正在使用自定义绘制视图实现ListView活动,并具有以下代码: @Override public void onDraw(Canvas canvas) { super.onDraw(canvas); …. canvas.drawText(String.format(“%02d: %dx%d”, position, w, h), 10, 15, cached_paint); } 在onDraw方法中几乎没有别的东西,所以这让我很生气,为什么滚动如此糟糕。 我偶然把drawText参数更改为不使用String.format,然后突然滚动了黄油丝。 事实上,以下几乎是相同但表现良好: canvas.drawText(“” + position + “: ” + w + “x” + h, 10, 15, cached_paint); 我惊呆了。 为什么后者比调用String.format更快? 我希望对象连接产生更多的中间对象和一般的垃圾性能,但我发现完全相反。 事实上,当使用String.format运行时,我从vm获得了大量的分配/释放消息。 那么为什么String.format显然可以更快(至少来自其他编程语言,其中对象创建是昂贵的)时,它是如此之慢?

Android ListView。 如何更改手动选定项目的背景颜色

你能帮我吗。 我需要更改我的列表视图项的背景颜色,这是由setSelection(int pos)函数手动选择的,我需要保持新的颜色,直到新的setSelection调用。 我已经阅读了一些如何做到这一点的主题,但我仍然没有成功。 谢谢!

更改简单ListView的文本颜色多选Android

我正在开发一个板球应用程序。 我的要求是这样的,如果我选择第1组必须显示可用国家名称列表,如果我选择国家名称作为印度,则必须显示来自印度的玩家列表,并且我已从中选择多个玩家。 我做了一切。 但我的问题是我使用android.R.layout.simple_list_item_multiple_choice来选择玩家。 我使用简单的列表视图,该列表的背景是黑色图像。 我的列表视图就是这样 现在的问题是listview值显示为黑色。 我已经有黑色背景图片。 而且价值也是黑色的。 所以看起来并不好看。 如何在不更改自定义适配器的情况下将listview值的颜色更改为白色。 这是我的适配器类 adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_multiple_choice,playersName); lvview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); lvview.setAdapter(adapter);

Gmail风格列表视图

我想创建一个与Gmail安卓应用程序function相似的列表视图。 我的意思是你可以通过单击左侧的图像来选择行,或者通过单击行上的任何其他位置来查看电子邮件。 我可以靠近,但它不是那里。 我的自定义行包含左侧的ImageView和右侧的一些TextView。 这是我的适配器上的getView的要点。 @Override public View getView(final int position, View convertView, ViewGroup parent) { View row = super.getView(position, convertView, parent); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getListView().setItemChecked(position, !getListView().isItemChecked(position)); } }); row.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getActivity(), “” + position, Toast.LENGTH_SHORT).show(); } }); } 这非常接近! 缺少的是突出显示行单击侦听器上的行。

Android:simple_list_item_single_choice无法使用ArrayAdapter

在我的ListView中,我想要单个选择来删除该项目。 为此,我使用simple_list_item_single_choice与ArrayAdapter。 它向我展示了ListView中的单选选项。 但我无法点击该checkbox。 这是我的代码: ArrayList array_list_title = mydb.getTitle(); System.out.println(array_list_title); ArrayAdapter arrayAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_single_choice, array_list_title); listView.setAdapter(arrayAdapter);

获取视图被夸大的资源ID

有没有办法获得视图膨胀的布局的资源ID(如R.layout.viewtoInflate)? 我正在尝试实现一个列表视图,它使用2个自定义布局列表项。 使用哪个项目布局基于用于填充列表视图的对象中的字段。 我在自定义适配器中缺少的是一种了解我在getView()中获得的’convertView’被夸大的资源的方法。 如果我能得到那些信息,我可以比较并确定我是否可以重新使用转换视图,或者我是否必须用当前项目的相应布局替换它。 理想情况下它会是这样的: @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; JSONObject currItem = mItems.getJSONObject(position); int layoutType; if (currItem.getBoolean(“alternate”)) layoutType = R.layout.list_item_b; else layoutType = R.layout.list_item_a; if (convertView == null || != layoutType ) { convertView = inflater.inflate(layoutType, null); //Finish setting up new View and its holder } […]

如何使用Android设置带分频器的自定义ListView?

我想在我的android应用程序中实现Pull to Refreshfunction,所以我实现了这个库: Android-PullToRefresh 。 但是,我似乎无法设置自定义样式以编程方式划分。 代码很简单: list = (PullToRefreshListView) findViewById(R.id.list); int[] colors = {0, 0xFF97CF4D, 0}; list.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors)); list.setDividerHeight(1); 但是,它抛出了这个错误: The method setDivider(GradientDrawable) is undefined for the type PullToRefreshListView , The method setDividerHeight(int) is undefined for the type PullToRefreshListView. 我在这做错了什么?

如何在Android ListView Header上调用click事件?

我创建了一个列表视图,并为其添加了一个标题(通过使用addHeaderview(layout)),然后我写了一个click事件,如: LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); View itemView = inflater.inflate(R.layout.buypwr, null); itemView.setOnClickListner(new OnClickListner(){ @Override public void onClick(View v){ } 但是当我点击标题时,这个onClick事件没有触发,所以任何人都可以告诉我如何解决我的问题?

如何在android中隐藏ListViewAdapter的默认键盘

我正在使用ListViewAdapter在我的主页上绑定ListView和一个自定义键盘。 但是当我点击EditText时,会显示默认键盘。 我尝试使用以下代码隐藏它: InputMethodManager mgr = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE); mgr.hideSoftInputFromWindow(diesel.getWindowToken(), 0); activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 但它没有用。 如何从ListViewAdapter隐藏默认键盘?

Fragment中的notifyDataSetChanged()不刷新listview

我正在尝试显示从url中提取的项目列表,但我只想一次获取其中的20个…所以我已经实现了一个OnScrollListener来获取用户在最后一项上的项目列表显示。 提取项目但我唯一的问题是列表视图没有更新:这是我的代码到目前为止: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { parentView = inflater.inflate(R.layout.activity_event_speakers_alphabetically, container,false); listView = (ListView) parentView .findViewById(R.id.speakersAlphabeticallyActivityList); nameOrderedMembers.addDataBatch(communityMembers); nameOrderedAdapter = DelegateViewStateAdapterFactory .makeUserListAdapter(getActivity(), nameOrderedMembers.getSortedData(), DelegateViewStateAdapterFactory.OrderType.NAME); listView.setAdapter(nameOrderedAdapter); AQuery aQuery = new AQuery(listView); aQuery.id(R.id.speakersAlphabeticallyActivityList).scrolled(new EndlessScrollListener()); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { if (nameOrderedAdapter.getItem(arg2) instanceof User) { […]