标签: android-gridview

onCreate方法中的AsyncTask和setAdapter

我正在做一些繁重的网络任务 - 下载图片(预览) - 为了我的主UI不被阻止它在AsyncTask中做了,我想把它们放在GridView中,但我在AsyncTask完成之前设置了适配器.有些代码会更有帮助

    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.gridview);
            new LoadAllPictures().execute();
            GridView g = (GridView) findViewById(R.id.gridview);
            g.setAdapter(new ImageAdapter(this));
}
Run Code Online (Sandbox Code Playgroud)

所以最后Logcat显示所有内容都已下载但屏幕上没有任何内容.我尝试在AsyncTask中执行setAdapter部分,但它告诉我:Only the original thread that created a view hierarchy can touch its views.

我该怎么办 ?

android android-sdk-2.1 android-gridview android-asynctask

4
推荐指数
1
解决办法
4062
查看次数

如何将图像动态添加到 GridView?

我有一个GridView基于一系列项目创建的。当网格滚动到底部时,我需要添加更多图像,但我不知道该怎么做。

现在我明白了以下几点:

  1. 我有一个适配器,它解析数组并将 ImageIds 提供给将返回 ImageViews
  2. 我必须以某种方式更改这个数组并让适配器知道它,所以我的问题是,我如何获得对这个适配器的引用?

这是我的代码:

package com.wm.grid;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.Toast;

public class GridActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final Integer[] mThumbIds12 = {
                R.drawable.sample_2, R.drawable.sample_3,R.drawable.s1,
                R.drawable.sample_4, R.drawable.sample_5,
                R.drawable.sample_6, R.drawable.sample_7,
                R.drawable.sample_0, R.drawable.sample_1,
                R.drawable.sample_2, R.drawable.sample_3,
                R.drawable.sample_4, R.drawable.sample_5, …
Run Code Online (Sandbox Code Playgroud)

java android android-image android-gridview

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

gridview的图像没有得到刷新

我有一个网格视图,其中包含从列表中填充的图像.当我从列表中删除图像时,我希望网格视图得到刷新.有人告诉我如何做到这一点.

我试图使gridview无效(),通知图像适配器数据集已更改(adapter.notifyDataSetChanged();).但这并没有给出预期的结果.

在这样做之后,我在以前移除的图像的位置得到一个空白.

android gridview invalidation android-layout android-gridview

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

在Android GridView上实现onItemClick和onItemLongClick

我如何实现onItemLongClickonItemClickGridView,以便GridView项目响应这两个事件?

android-gridview

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

在GridView中填充网格

我的网格布局有些问题.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:id="@+id/frag_books_grid_view_layout"
     android:orientation="vertical">
        <GridView
            android:padding="0dp"
            android:cacheColorHint="@color/bg_default"
            android:listSelector="@drawable/list_selector_background"
            android:id="@+id/frag_books_grid_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:stretchMode="spacingWidth"
            android:scrollbars="none"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

单项:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" 
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <ListView
        android:cacheColorHint="@color/bg_default"
        android:scrollbars="none"
        android:listSelector="@drawable/list_selector_background"
        android:layout_gravity="center_vertical|left"
        android:gravity="center_vertical|left"
        android:paddingLeft="15dp"
        android:paddingRight="15dp" 
        android:id="@+id/frag_book_list_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:verticalSpacing="5dp"/>
</LinearLayout>    
Run Code Online (Sandbox Code Playgroud)

问题是单个项目没有左右填充.选择项目时看起来很糟糕:http://i.imgur.com/rirNP.png

请帮助解决它.

xml android android-layout android-gridview

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

带有节标题的GridView

我试图用节标题实现GridView.我在Android GridView中发现了另外一个带有类别的问题?但是,根据接受的答案,我将"标题"作为单元格而不是标题位于其自己的行中.

我不知道我在这里失踪了什么(也尝试过MergeAdapter),有人能指出在GridView中实现节头所需的细微差别吗?

android gridview android-gridview

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

如何在StaggeredGridView中使用setScrollListener

我试图在StaggeredGridView中添加Scroll监听器,我无法想出一种方法来添加,没有实现,我可以看到
Github网址 https://github.com/maurycyw/StaggeredGridView 谢谢

android android-layout android-gridview

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

在GridView中拖放项目

我的应用程序中的gridview.我想通过拖放来重新排列GridView项目.假设第一项被拖到第二项上,它们的位置应该被替换.我尝试实现Android的Home Screen的方式.但它没有用.

android drag-and-drop android-gridview

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

Android小部件中的GridView

我一直在尝试使用GridView为我的应用程序实现widget .我是Android开发的新手.我在互联网上搜索了很多,但找不到任何有用的东西.我有点卡在这里,因为这不会在我的GridView上显示任何内容.任何帮助,将不胜感激.

提前致谢 !

这是我的代码

public class MainActivity extends AppWidgetProvider{

public static final String TOAST_ACTION = "com.example.widgetdevelopment.TOAST_ACTION";
public static final String EXTRA_ITEM = "com.example.widgetdevelopment.EXTRA_ITEM";



@Override
public void onReceive(Context context, Intent intent) {

    AppWidgetManager mgr = AppWidgetManager.getInstance(context);
    if (intent.getAction().equals(TOAST_ACTION)) {
        int appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
                AppWidgetManager.INVALID_APPWIDGET_ID);
        int viewIndex = intent.getIntExtra(EXTRA_ITEM, 0);
        Toast.makeText(context, "Touched view " + viewIndex,      Toast.LENGTH_SHORT).show();
    }
    super.onReceive(context, intent);
}

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds)  {
    for (int i = 0; i …
Run Code Online (Sandbox Code Playgroud)

android android-widget android-gridview

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

浓缩咖啡 - 单击gridview内的图像

我有一个视图层次结构如下:

GridView{id=2131362110, res-name=item_list_grid, 
|
+----->RelativeLayout{id=2131362124, res-name=item_image_thumb_layout
|
+------------->ImageView{id=2131362125, res-name=item_image
|
+----->RelativeLayout{id=2131362124, res-name=item_image_thumb_layout
|
+------------->ImageView{id=2131362125, res-name=item_image
|
+------>RelativeLayout{id=2131362124, res-name=item_image_thumb_layout
|
+------------->ImageView{id=2131362125, res-name=item_image
|
GridView{id=2131362110, res-name=item_list_grid, ...etc
Run Code Online (Sandbox Code Playgroud)

我想点击其中一个带有id = item_image的ImageView.

我不能像atPosition(x)一样使用onView,所以我使用了onData.我尝试了所有这些:

onData(allOf(anything(),withId(R.id.item_image))).atPosition(0).perform(click());

onData(anything()).atPosition(0).perform(click());

onData(allOf(atPosition(0),withId(R.id.item_image))).perform(click());
Run Code Online (Sandbox Code Playgroud)

但所有结果都是

android.support.test.espresso.AmbiguousViewMatcherException: 'is assignable from class: class android.widget.AdapterView' matches multiple views in the hierarchy.
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?谢谢!

android android-gridview android-espresso

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