gridview 自定义view-GridView 无法显示自定义view

问题描述

GridView 无法显示自定义view
package com.example.image;

import java.util.List;

import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
/**

  • 音效视图的适配器,将音效视图填充到GridView中
  • @author lewa
    *
    */
    public class MyAdapter extends BaseAdapter {
    private List list;
    private Context context;

    public MyAdapter(List listContext context){
    this.list = list;
    this.context = context;
    }

    @Override
    public int getCount() {
    // TODO Auto-generated method stub
    return list.size();
    }

    @Override
    public Object getItem(int position) {
    // TODO Auto-generated method stub
    return null;
    }

    @Override
    public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
    }

    @Override
    public View getView(int position View convertView ViewGroup parent) {
    // TODO Auto-generated method stub
    ItemView itemview;
    if(convertView == null){
    itemview = new ItemView(context);

    }else{    itemview = (ItemView) convertView;}itemview.imageView.setImageResource(list.get(position).getImageId());Log.i(""ymh""Position:""+position+""----List.size() = ""+list.size());itemview.textView.setText(list.get(position).getLable());Log.i(""ymh""itemview.textView.getText().toString());itemview.setLayoutParams(new GridView.LayoutParams(8585));itemview.setPadding(8 8 8 8);return itemview;

    }

}

 package com.example.image;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.widget.ImageView;import android.widget.RelativeLayout;import android.widget.TextView;/** * 音效图片和音效名称的组合view * @author lewa * */public class ItemView extends RelativeLayout {    ImageView imageView;    TextView textView;    private int state = 0;    public ItemView(Context context) {        super(context);        init(context);    }    public ItemView(Context context AttributeSet attrs) {        super(context attrs);        init(context);    }    public ItemView(Context context AttributeSet attrs int defStyle) {        super(context attrs defStyle);        init(context);    }    private void init(Context context){        LayoutInflater inflater = LayoutInflater.from(context);         View view = inflater.inflate(R.layout.item null);        imageView = (ImageView) view.findViewById(R.id.item_image);        textView = (TextView) view.findViewById(R.id.item_text);    }    public void OnClickListener(View.OnClickListener listener){        if(state==0){            imageView.setBackgroundColor(android.graphics.Color.GREEN);            state = 1;        }else{            imageView.setBackgroundColor(android.graphics.Color.GRAY);        }    }}

<?xml version=""1.0"" encoding=""utf-8""?>
android:id=""@+id/RelativeLayout1""
android:layout_width=""wrap_content""
android:layout_height=""wrap_content""
android:orientation=""vertical"" >

<ImageView    android:id=""@+id/item_image""    android:layout_width=""100dp""    android:layout_height=""100dp""    android:layout_alignParentLeft=""true""    android:layout_alignParentTop=""true""    android:src=""@drawable/ic_launcher""     android:padding=""5dp""/><TextView    android:id=""@+id/item_text""    android:layout_width=""wrap_content""    android:layout_height=""wrap_content""    android:layout_alignLeft=""@id/item_image""    android:layout_alignRight=""@id/item_image""    android:layout_below=""@+id/item_image""    android:gravity=""center""    android:textColor=""#00ffaa""    android:text=""textview"" />

解决方案

 private void init(Context context){        LayoutInflater inflater = LayoutInflater.from(context);         View view = inflater.inflate(R.layout.item null);  //这里不能这么处理了这么解析后,就不是你自定义new出来的布局了。        imageView = (ImageView) view.findViewById(R.id.item_image);//把VIEW去掉,用this        textView = (TextView) view.findViewById(R.id.item_text);//把VIEW去掉,用this    }

解决方案二:

 LayoutInflater inflater = LayoutInflater.from(context);        View view = inflater.inflate(R.layout.item null);        textView = (TextView) view.findViewById(R.id.item_text);        imageView = (ImageView) view.findViewById(R.id.item_image);        this.addView(view);

试了下,这样可以

时间: 2024-09-20 00:57:23

gridview 自定义view-GridView 无法显示自定义view的相关文章

Android控件View打造完美的自定义侧滑菜单

一.概述 在App中,经常会出现侧滑菜单,侧滑滑出View等效果,虽然说Android有很多第三方开源库,但是实际上咱们可以自己也写一个自定义的侧滑View控件,其实不难,主要涉及到以下几个要点: 1.对Android中Window类中的DecorView有所了解 2.对Scroller类实现平滑移动效果 3.自定义ViewGroup的实现 首先来看看效果图吧: 下面现在就来说说这里咱们实现侧滑View的基本思路吧,这里我采用的是自定义一个继承于RelativeLayout的控件叫做XCSlid

listview-如何获取GridView或ListView中的每一个view

问题描述 如何获取GridView或ListView中的每一个view 如题我想在gridview中的某一个指定的view中设置一个抖动的动画,但我发现如果是这样写: bankAdapter = new CustomGridAdapter(MainActivity.this bankItems); bankGrid.setAdapter(bankAdapter); //动画 Animation shakeAnim = AnimationUtils.loadAnimation(MainActivi

Android 自定义闪屏页广告倒计时view效果

如今APP越来越多,我们每天所使用的的软件也越来越多,可是在我们不付费的情况下,App制造商如何实现,实现收入甚至是盈利呢?答案就是在我们打开软件所必须经过的地方穿插广告,当然为了顾及用户的感受,一般都会以倒计时的形式展示给用户,用户可以选择跳过.可能是因为自己的强迫症,总想着是怎么做的,自己就尝试了一下,分享给大家的同时,顺便加深自己的理解.效果如图: 1.为了满足产品和设计,先搞几个自定义属性 1)内层背景 2)数字的颜色 3)外层圆环宽度 4)文字大小 5)外层圆环颜色 6)圆的半径 这里

[翻译] MCProgressView 使用自定义图片做进度显示

MCProgressView 使用自定义图片做进度显示 https://github.com/Baglan/MCProgressView Progress bar view with custom images. 使用自定义图片来显示进度条. Installation(安装) Add the QuartzCore framework to your project;添加QuartzCore框架 Copy files from the 'Classes' folder into your proj

给GridView写的adapter不显示数据,几个人都说没问题

问题描述 给GridView写的adapter不显示数据,几个人都说没问题 gvGoods=(GridView) findViewById(R.id.gv_goods); context=this; ArrayList> data=new ArrayList>(); HashMap map1=new HashMap(); map1.put("image",R.drawable.bear); map1.put("name", "熊");

在ASP.NET 2.0中操作数据之十五:在GridView的页脚中显示统计信息_自学过程

导言 除了需要了解产品的单价.库存量和订货量,并按等级排序之外,用户可能还对统计信息感兴趣,比如说平均价格.库存总量等等.这些统计信息常常显示在报表最下面的一个统计行中.GridView控件可以含有一个页脚行,我们可以通过编程将统计数据插入到它的单元格里面去.这个任务给了我们以下3个挑战: 1.配置GridView以显示它的页脚行 2.确定统计数据.即我们应该如何计算平均价格还有库存总量? 3.将统计信息插入到页脚行的相应的单元格中 在本节教程中,我们将会看到如何去征服这些挑战.另外呢,我们将创

eclipse-【Android】GridView可以操作但不能显示图片

问题描述 [Android]GridView可以操作但不能显示图片 public class MainActivity extends Activity { int [] imageIds = new int[] { R.drawable.one,R.drawable.two,R.drawable.three, R.drawable.four,R.drawable.five,R.drawable.six }; ImageSwitcher switcher; @Override protected

怎样将GridView控件默认的显示列改成HyperLink显示列 不是高手不要来!!!

问题描述 分数>=100在线长期,除了专家100分外,好贴我尽量给.目标1.制作的"GridView"新组件功能1.可将其拖到页面,成为一个为一个控件:在引用后可以像其他控件一样在后台可动态生成.2.新组件在GridView组件的基础上,新增一个功能单击生成在页面GridView控件上任何一个(数据单元格)个可以弹出一个新的页面,并可传递单击单元格相对参数.3.如果将GridView控件默认的显示列改成HyperLink显示列后(不要有下划线).注意1.不是普通的自定义控件.2.

在ASP.NET Core中显示自定义的错误页面_实用技巧

前言 相信每位程序员们应该都知道在 ASP.NET Core 中,默认情况下当发生500或404错误时,只返回http状态码,不返回任何内容,页面一片空白. 如果在 Startup.cs 的 Configure() 中加上 app.UseStatusCodePages(); ,500错误时依然是一片空白(不知为何对500错误不起作用),404错误时有所改观,页面会显示下面的文字: Status Code: 404; Not Found 如果我们想实现不管500还是404错误都显示自己定制的友好错