标签: android-gridview

GridView项目列表选择器,用于在Android中无法使用的多个项目

我想在长按时画出选择器,如图所示.当我长按一个项目时,CAB菜单被激活.但是单击后列表选择器指示灯会熄灭一次.我希望列表选择器处于活动状态,直到CAB菜单处于活动状态以允许多个选择.如果我双击,颜色应切换.当我点击它时,这段代码就像闪烁一样.任何人都面临类似的事情?是否有一个hack来实现这个功能?

Gridview有多个选择:

在此输入图像描述

我的OnCreate中的GridView setchoice:

gridView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL);
gridView.setMultiChoiceModeListener(new MultiChoiceModeListener());
Run Code Online (Sandbox Code Playgroud)

这很好用:

gridView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View v,
            int position, long id) {

    ImageView iv = (ImageView) v
                        .findViewById(R.id.imageview2);
                ViewGroup gridChild = (ViewGroup) gridView
                        .getChildAt(position);
                ViewGroup gridGrandChild = (ViewGroup) gridChild
                        .getChildAt(0);
                ViewGroup gridGreatGrandChild = (ViewGroup) gridGrandChild
                        .getChildAt(0);
                int childSize = gridGreatGrandChild.getChildCount();
                if (iv.getId() == gridGreatGrandChild.getChildAt(1)
                        .getId()) {
                    if (iv.getVisibility() == 4)
                        iv.setVisibility(View.VISIBLE);
                    else
                        iv.setVisibility(View.INVISIBLE);
                }
}});
Run Code Online (Sandbox Code Playgroud)

我试图在激活CAB菜单后在MultiChoiceModeListener()类中实现相同的代码.在里面复制相同的代码

public void onItemCheckedStateChanged(ActionMode mode, int position,
            long id, boolean checked) {
}
Run Code Online (Sandbox Code Playgroud)

方法.但我无法访问视图组内的元素.但我能够完整地访问GridView.但不是Grid中的个别孩子. …

android android-layout android-gridview android-selector

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

始终调用Gridview onScroll方法,无需用户滚动

我有一个自定义的gridview,我正在检查循环方法以查找列表的结尾.如果滚动到达列表的末尾,它将再次向列表中添加一些元素.

gridview.setOnScrollListener(new OnScrollListener() {

        @Override
        public void onScrollStateChanged(AbsListView arg0, int arg1) {

        }

        @Override
        public void onScroll(AbsListView arg0, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            // TODO Auto-generated method stub

            int lastInScreen = firstVisibleItem + visibleItemCount;     


            //is the bottom item visible & not loading more already ? Load more !
            if((lastInScreen == totalItemCount) && (!loadingMore))
            {   
                new LoadDataTask().execute();

            } 
        }
    });
Run Code Online (Sandbox Code Playgroud)

这是我的异步任务类..

    private class LoadDataTask extends AsyncTask<Void, Void, Void> {

    @Override
    protected Void doInBackground(Void... params) {

        if (isCancelled()) {
            return …
Run Code Online (Sandbox Code Playgroud)

android-gridview android-scroll

14
推荐指数
1
解决办法
3381
查看次数

如何添加gridview setOnItemClickListener

我有一个带有81个按钮的GridView.我想将clicklistener添加到此gridview,但它不可用.我添加了OnItemClickListener,但它无法正常工作,我无法理解为什么.代码没有错误.唯一不起作用的是OnItemClickListener.

我的gridview子节点上有一个按钮(gridview_members.xml);

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

<Button
    android:id="@+id/city"
    android:layout_width="183dp"
    android:layout_height="90dp"
    android:textSize="19sp"
    android:textStyle="bold"
    android:text="Code\n\nCity"
    android:gravity="center"
    android:background="@drawable/city_btn_tablet" />

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

我的ImageAdapter类;

public class ImageAdapter extends BaseAdapter {
private Context mContext;

public ImageAdapter(Context c) {
    mContext = c;
}

public int getCount() {
    return 81;
}

public Object getItem(int position) {
    return null;
}

public long getItemId(int position) {
    return 0;
}

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

    LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View gridView;

    gridView …
Run Code Online (Sandbox Code Playgroud)

android android-gridview

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

Gridview根据滚动视图中的实际高度显示

 <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/titleBarBG"
        android:layout_alignParentLeft="true" >

    <RelativeLayout
        android:id="@+id/scrollContent"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
         >

    <GridView
        android:id="@+id/issueList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/archiveTitle"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:background="@drawable/customshape"
        android:numColumns="3"
        android:overScrollMode="never"
        android:scrollbars="none" >
    </GridView>

</RelativeLayout>
 </ScrollView>
Run Code Online (Sandbox Code Playgroud)

我想创建一个像桌子一样的网格视图.例如,网格的大小将增加,这将使gridview更高.我希望网格视图显示所有内容,并在有其他内容时扩展高度,而不是隐藏额外的内容

怎么实现这个?谢谢

java android gridview android-layout android-gridview

14
推荐指数
1
解决办法
3741
查看次数

Android - 网格中项目之间的RecyclerView间距

在我的Android应用程序中,我使用a RecyclerView来显示网格中的项目GridLayoutManager.在GridView中,为了指定元素之间的间距,我将设置horizo​​ntalSpacingverticalSpacing属性.

那么,我怎么能这样做RecyclerView呢?

android gridview android-gridview android-recyclerview

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

Android : Putting Grid of dynamic&custom objects inside another Grid of dynamic&custom objects

I am working on an Android project in which I am using the 'SuperSlim' framework for creating a grid view of Notes(Custom class) along with data to be displayed. Notes in the Database have a many-to-one relationship with Sections(Custom class). And Sections in turn have many-to-one relationship with Canvas.

All information for section, notes is dynamically retrieved from server as a List.

Now I am at the point, where I am able to display a Grid view of Sections, and …

java android android-gridview android-recyclerview superslim

14
推荐指数
1
解决办法
709
查看次数

Android Hello GridView教程不会显示图像

第一次海报!

我是Android开发的新手,并且一直关注Google的HelloView教程,直到HelloGridView教程.出于某种原因,我无法显示任何图像,只有黑色背景.我最初遵循本教程:

http://developer.android.com/resources/tutorials/views/hello-gridview.html

但转到这个几乎相同的一个:

http://developer.android.com/guide/tutorials/views/hello-gridview.html

通过删除OnItemClickListener代码并缩小我可能的问题区域来消除一些增加的复杂性.我的代码与提供的代码完全相同,字面上复制和粘贴.我甚至从教程中下载了原始样本文件并将它们放在res\drawable文件夹中,R代码似乎已经成功识别它们并相应地更新了它生成的代码.我正在使用Android目标1.5,并在我的Droid X和使用Android模拟器上尝试过这个程序.我有我的所有导入和代码编译并运行良好.但是,我的活动只显示黑屏; 没有图像出现.当我点击黑色背景时,橙色方块出现在图像所在的位置.我找到了一两个提到这个问题的帖子,但它总是伴随着一些更大,更明显的问题,从未解决过.我将在下面列出我的代码和LogCat以供参考.

我注意到我的LogCat提到了:

WARN/ImageView(364): Unable to find resource: 2130837507
Run Code Online (Sandbox Code Playgroud)

这让我想到了这个主题: 为什么setImageResource什么都没显示? 使用setImageDrawable而不是setImageResource详细说明可能的解决方法.我使用以下代码行实现了这个:

imageView.setImageDrawable(mContext.getResources().getDrawable(mThumbIds[position]));
Run Code Online (Sandbox Code Playgroud)

但是,这导致了一个资源$ NotFoundException崩溃了我的代码(也在下面记录).

结论
我认为Android教程不应该需要一个解决方法,所以我猜我有一些配置问题.经过几个小时的搜索和尝试,我还没有找到解决方案,所以我认为这需要一些讨论.另外,这是我的第一篇文章,如果你看到任何明显的失礼,请告诉我.我提前为即将到来的墙壁代码道歉,尽管我认为数据太少可能会比太多更糟糕.:d

多谢你们!

MarnBeast


更新
我尝试在我的mThumbIds中使用R.drawable.icon,在我和我的一张照片之间交替.没有任何图片显示,但图标显示.然后我尝试了我的图片的.png版本,但这也不起作用.我复制了icon.png图片并在paint中编辑了它(在android上留下了小胡子:D)并将其保存为dummyicon.png.我在那个和图标之间交替,但这也不起作用.最后,我摆脱了所有的图标引用,只是使用了我的png图像,但奇怪的是,当运行时,所有图像都显示为图标,即使我没有在mThumbIds中引用它!这与先前的行为不同,当没有显示任何内容时.我改变了一对虚拟图标,当运行时,那些图像只是没有显示/只是黑色.所有其他图像(在mThumbIds中重复的一个png转换图像)仍然显示为图标.

最后,我再次用图标替换了我转换后的png图像引用,在icon和dummyicon之间交替,现在它们都没有显示 - 只是再次出现黑屏.因此看起来,虚拟图标和图标在引用时都不会产生任何效果,只是一个黑色空间,但是我转换后的png图像 - chloie1.png - 产生了icon.png.我添加了另一张图片 - chloie2.png - 并在chloie1和chloie2之间交替,但只有chloie1显示图标图像.因此,这是我现在的mThumbIds的状态:

private Integer[] mThumbIds = {
        R.drawable.chloie1, R.drawable.chloie2,
        R.drawable.chloie1, R.drawable.chloie2,
        R.drawable.chloie1, R.drawable.chloie2,
        R.drawable.chloie1, R.drawable.chloie2,
        R.drawable.chloie1, R.drawable.chloie2,
        R.drawable.chloie1, R.drawable.chloie2,
        R.drawable.chloie1, R.drawable.chloie2,
        R.drawable.chloie1, R.drawable.chloie2,
        R.drawable.chloie1, R.drawable.chloie2,
        R.drawable.chloie1, R.drawable.chloie2,
        R.drawable.chloie1, R.drawable.chloie2
};
Run Code Online (Sandbox Code Playgroud)

这是模拟器的输出:

仿真器显示 -  GridView问题


解!
事实证明,出于某些原因,本教程对于JPEG图像不起作用.此外,我做了一个愚蠢的假设,只是简单地将扩展从.jpg更改为.png,这仍然适用于图像查看器,但仍然被Android识别为jpg.现在我已经编辑了油漆中的每张图片,然后保存为PNG类型,一切似乎都运行正常.

但是我还是觉得这里有问题.我假设android应该处理.jpg图像,因为他们提供了jpegs作为他们的样本图片.如果有人知道为什么PNG有效,但JPG没有,请回复.与此同时,这个简单的修复程序也可以.

谢谢您的帮助!



参考

main.xml中:

<?xml version="1.0" encoding="utf-8"?>
<GridView …
Run Code Online (Sandbox Code Playgroud)

android textview android-layout android-gridview

13
推荐指数
1
解决办法
7785
查看次数

设置固定GridView行高

我在GridView中遇到行高的各种问题.

我想用XML设置项目的大小(高度/宽度)然后让GridView自动调整尽可能多的没有拉伸.如果它不适合下一个元素,它应该只在它能够适应的当前元素数量周围添加填充.

目前我得到2列(对我来说几乎看起来固定大小)并且行被拉伸.有人可以帮助解释发生了什么以及如何实现我想要的东西吗?

网格视图:

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/main_grid"
    android:numColumns="auto_fit"
    android:gravity="center"
    android:paddingRight="20dp"
    android:paddingLeft="20dp"
    android:clipToPadding="true"
    android:fitsSystemWindows="true"
    android:stretchMode="none"
    android:background="@drawable/main_grid_background">

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

GridItem(我想要它320x320,因为我后来插入一个背景图像,如果它不是一个完美的正方形,看起来很奇怪).

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="320dp"
    android:layout_height="320dp"
    android:padding="10dp" >

    <TextView
        android:id="@+id/grid_item_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:text="@+id/label"
        android:layout_marginTop="5dp"
        android:textColor="@color/black"
        android:textSize="15sp"
        android:visibility="invisible"
        android:layout_centerInParent="true" >
    </TextView>

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

Java的:

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

        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View gridView;

        if (convertView == null) {

            gridView = new View(context);

            // get layout from mobile.xml
            gridView = inflater.inflate(R.layout.main_grid_item, …
Run Code Online (Sandbox Code Playgroud)

android android-gridview

13
推荐指数
2
解决办法
7万
查看次数

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

为什么项目在Android GridView中滚动时更改顺序?

我在android中有一个GridView,我用从xml资源中检索的数据填充它.
例如,我在GridView中有15个项目按顺序放置.整体高度超过屏幕高度,所以我必须滚动以查看其余项目.
问题是当我向上滚动时,不可见行的顺序已经改变.这是一种神秘的行为,因为有时项目互相交换行.这是我的getView方法:

public class ImageAdapter extends BaseAdapter {
        public ImageAdapter(Context c, NodeList cuu) {
                cu = cuu;
        }
        public int getCount() {
                Log.d("Node Count",cu.getLength()+"");
                return cu.getLength();
        }
        public Object getItem(int position) {
                return position;
        }
        public long getItemId(int position) {
                return position;
        }
        public View getView(int position, View convertView, ViewGroup parent) {
                View myView = convertView;
                if (convertView == null) {
                    Node nd = cu.item(position);
                    Log.d("nodes","Pos: "+(position)+" Name: "+nd.getNodeName()+" Title: "+nd.getAttributes().getNamedItem("title").getTextContent());
                    int catID = Integer.parseInt(nd.getAttributes().getNamedItem("id").getTextContent());
                    LayoutInflater li …
Run Code Online (Sandbox Code Playgroud)

android android-gridview

12
推荐指数
2
解决办法
9763
查看次数