标签: android-listview

当用户旋转手机并保留ArrayAdapter中的所有数据时,保留listview项目的良好解决方案

我正在使用Fragment和listView.我通过自定义Loader(来自互联网)收到的数据填充与此列表视图关联的ArrayAdapter.Custom ArrayAdapter支持无限滚动(分页).

当用户在ListView中旋转设备并保持滚动位置时,在ArrayAdapter中存储项目的最佳方法是什么?

我正在考虑使用ArrayAdapter创建非可视片段,并使用setRetainInstance方法来保存值.

有什么更好的解决方案吗?

android android-listview android-fragments

41
推荐指数
3
解决办法
5万
查看次数

如何设置ListView行高

我正在向您展示下面的图像,其中行的高度不同我希望行应该具有相同的高度.

在此输入图像描述

在我的程序中,我从XML服务获取数据,我解析并在列表视图上显示结果,但ListView行的高度不同.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:background="@drawable/list_selector"
  android:padding="3dip"
  android:layout_width="match_parent"
  android:gravity="center"
  android:layout_height="10dp">

    <TextView android:layout_height="wrap_content" android:text="ITEM"
        android:layout_width="wrap_content" android:id="@+id/txtItem"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="15dip"
        android:textStyle="bold"
        android:textColor="#040404"></TextView>

    <TextView android:layout_height="wrap_content" android:text="MANUFACTURER"
        android:layout_width="wrap_content" android:id="@+id/txtItemTwo"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="14dip"
        android:textColor="#FF7F50"

        ></TextView>


</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我已经设定了高度

机器人:layout_height = "10dp"

但是在listView上进行diplaying时仍然不一样.

这是我为getVieew定制的适配器: -

 public class MyEventAdapter extends BaseAdapter {

     ArrayList < String > listTitle;
     ArrayList < String > listFullText;

     Activity activity;

     public MyEventAdapter(Activity activity, ArrayList < String > listTitle, ArrayList < String > listFullText) {
         super();
         this.listTitle = listTitle;
         this.listFullText = listFullText;

         this.activity = …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-listview baseadapter

40
推荐指数
2
解决办法
5万
查看次数

使用Slide-Like Gmail删除项目列表视图

我正在列表视图中开发一个带有商店列表的应用程序.当我listview向右(或向左)滑动项目时,我需要这个项目应该从列表视图中删除.

我有我的listview,只需要这个功能.

提前致谢.

android android-listview

40
推荐指数
3
解决办法
6万
查看次数

所选项目的导航抽屉项目背景颜色

我使用Android Studio来实现导航抽屉,我无法获得用于显示我们当前要更改的部分的蓝色.

我尝试了很多东西,我目前正在使用listSelector,它看起来像:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_activated="true" android:drawable="@color/selected" />
    <item android:state_pressed="true" android:drawable="@color/highlight" />


</selector>
Run Code Online (Sandbox Code Playgroud)

我也试过了state_checked.state_pressed在这种情况下工作,但当前选择的项目仍然是蓝色.

编辑:我一直在研究这个,当创建适配器时,传递的上下文是getActionBar().getThemedContext()如此我想如果我能找到正确的属性来分配我的操作栏样式我可以从那里改变它.我尝试了几个不同的属性而没有运气.有谁知道确切的属性?

我也意识到我是否愿意

<item name="android:activatedBackgroundIndicator">@drawable/nav_listview_selector</item>

在我的主题和变化的主要部分getActionBar().getThemedContext()getActivity.getBaseContext话,我可以改变颜色,但我不认为这是正确的方式.我认为应该使用主题背景.因此,如果有人知道activatedBackgroundIndicator可以放在哪里,那么它将被用于getActionBar.getThemedContext()

EDIT2:

因此,用于listview的文本视图是SDK中的一个,如下所示:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceListItemSmall"
    android:gravity="center_vertical"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:background="?android:attr/activatedBackgroundIndicator"
    android:minHeight="?android:attr/listPreferredItemHeightSmall"
/>
Run Code Online (Sandbox Code Playgroud)

所以我尝试修改"?android:attr/activatedBackgroundIndicator"主题级别,但它对选中/选中/激活没有效果,但它对按下有效.有人知道为什么吗?我怎么能改变它?

android android-listview android-navigation

40
推荐指数
6
解决办法
7万
查看次数

如何从后台服务更新Android活动中的信息

我正在尝试创建一个具有ActivityList信息的简单Android应用程序,当应用程序启动时,我计划启动一个将不断计算数据的服务(它将会改变),我希望ActivityList与之同步服务计算应用程序生命周期的数据.

如何设置我的Activity以收听服务?这是解决此问题的最佳方法吗?

例如,如果您想象一个股票价格列表 - 数据将定期更改,并且需要与(在我的情况下)不断计算/获取数据的服务同步.

提前致谢

java android android-listview observer-pattern

39
推荐指数
1
解决办法
3万
查看次数

使用2种不同的布局重用Android Listview中的视图

我已经了解到,为了最大限度地提高Android列表视图的效率,您应该只需要尽可能多的充满"行"视图,以适应屏幕.一旦视图移出屏幕,您应该在getView方法中重复使用它,检查是否convertView为null.

但是,当您需要2个不同的列表布局时,如何实现这个想法?让我们说它的订单列表和1个布局是针对已完成的订单而另一个布局是针对流程订单.

这是我的代码使用的想法的示例教程.在我的情况下,我将有2行布局:R.layout.listview_item_product_completeR.layout.listview_item_product_inprocess

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder = null;

if (convertView == null) {
    holder = new ViewHolder();
    if(getItemViewType(position) == COMPLETE_TYPE_INDEX) {
        convertView = mInflator.inflate(R.layout.listview_item_product_complete, null);
        holder.mNameTextView = (TextView) convertView.findViewById(R.list.text_complete);
        holder.mImgImageView = (ImageView) convertView.findViewById(R.list.img_complete);
    }
    else { // must be INPROCESS_TYPE_INDEX
        convertView = mInflator.inflate(R.layout.listview_item_product_inprocess, null);
        holder.mNameTextView = (TextView) convertView.findViewById(R.list.text_inprocess);
        holder.mImgImageView = (ImageView) convertView.findViewById(R.list.img_inprocess);
    }
    convertView.setTag(holder);
} else {
    holder = (ViewHolder) convertView.getTag();
}
    thisOrder = (Order) …
Run Code Online (Sandbox Code Playgroud)

java android android-layout android-listview

39
推荐指数
2
解决办法
3万
查看次数

Android涟漪背景颜色

我在导航抽屉上使用了涟漪效果.我已经像这样设置并将其应用到我的ListView:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_activated="true" android:drawable="@color/black_200" />

    <item android:state_pressed="true" android:color="@color/black_200">
        <ripple android:color="@color/black_400" />
    </item>

    <item android:drawable="@color/white" />
</selector>
Run Code Online (Sandbox Code Playgroud)

我希望纹波背景与正常激活状态保持一致.即使我将颜色定义为与激活状态相同,它也会变暗,并且波纹气泡会变得更暗.如何将背景颜色设置为相同,如激活状态和波纹气泡是我告诉它的颜色?

android android-listview android-activity navigation-drawer rippledrawable

39
推荐指数
3
解决办法
3万
查看次数

Android在ListView中获得精确的滚动位置

我想获得ListView滚动的精确像素位置.不,我不是指第一个可见的位置.

有没有办法实现这个目标?

android android-listview

38
推荐指数
5
解决办法
7万
查看次数

使用动画展开ListView项

我有一个ListView.最初,它ListView包含一些数据.当用户点击某个项目时,另一个布局将动态添加到该项目中,因此它的高度将会增加.

现在,当项目的高度增加时,它会立即显示修改后的项目.但是,我想要的是动画,所以逐渐增加项目的高度.

android expandablelistview expandablelistadapter android-animation android-listview

38
推荐指数
4
解决办法
5万
查看次数

如何用RecyclerView完全替换listView/GridView?

我注意到新的RecyclerView类,虽然它使事情变得更清洁,但缺乏我熟悉的许多功能:

  1. 分隔符,但这可以通过查看这篇文章这篇文章来解决
  2. "footerDividersEnabled"
  3. "headerDividersEnabled"
  4. "listSelector",但也许我应该根据视图设置它?
  5. "fastScrollEnabled"
  6. "smoothScrollbar"
  7. "textFilterEnabled"
  8. 我还试图找出是否有一种新的方法来使用带有过滤的新类(通过实现Filterable与ListView一起使用).我不知道是否有这样的事情
  9. "tools:listitem",用于显示UI设计器上的项目.

这些是我使用的,但也许还有其他我错过了.

是否有任何教程或一些指导如何替换这些东西?

android android-listview android-gridview android-recyclerview

38
推荐指数
2
解决办法
1万
查看次数