一个GridView元素的可见性设置 [英] Set visibility of a gridview element

查看:186
本文介绍了一个GridView元素的可见性设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已创建了一个GridView和使用自定义适配器的。我加了两个图像内的电网view.one是图像和另外一个看起来像关闭按钮(这是在所有网格视图项目相同)。关闭按钮在开始时设置为不可见,我在我的活动另一个按钮,我想是:当我点击这个按钮,我想设置我网格视图中的每个元素的关闭按钮,但现在,点击时就可以了,没有任何反应。
下面是我的code:

  ImageView的deleteFavorImage;
    公共无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.browser);
    .....    GridView控件favorGrid =(GridView控件)findViewById(R.id.favorGrid);
    favorGrid.setAdapter(适配器);
    .....
    查看customView = findViewById(R.id.costumButton);
    customView.setOnClickListener(本);@覆盖
公共无效的onClick(视图v){    开关(v.getId()){    案例R.id.costumButton:
        deleteFavorImage.setVisibility(View.VISIBLE);
    打破;
    .....
    }

这是我的形象适配器code:

  @覆盖
       公共查看getView(INT位置,查看convertView,父母的ViewGroup)
       {           查看MyView的= convertView;
           最终诠释POS =位置;           LayoutInflater李=(LayoutInflater)MyContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
           MyView的= li.inflate(R.layout.favor_item,NULL);
           ImageView的IV =(ImageView的)MyView.findViewById(R.id.favor_item_image);
           iv.setImageResource(favorSites.get(POS));           deleteFavorImage =(ImageView的)MyView.findViewById(R.id.favDelete);
           deleteFavorImage.setImageResource(R.drawable.dubtndelete);           返回MyView的;
       }

最后,这是我的XML文件code:

 <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
机器人:layout_width =85dp
机器人:layout_height =85dp
机器人:方向=垂直
机器人:背景=@绘制/ dufavframe>    < LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =75dp
    机器人:layout_height =75dp
    机器人:方向=垂直
    机器人:layout_centerInParent =真
    机器人:比重=中心>    < com.test.favorsites.AspectRatioImageView机器人:layout_centerHorizo​​ntal =真
        机器人:ID =@ + ID / favor_item_image
        机器人:layout_alignParentTop =真正的机器人:layout_height =WRAP_CONTENT
        机器人:layout_width =match_parent机器人:adjustViewBounds =真/>
    < / LinearLayout中>
    < ImageView的机器人:ID =@ + ID / favDelete机器人:知名度=隐形
    机器人:layout_height =WRAP_CONTENT的android:layout_width =WRAP_CONTENT机器人:layout_marginTop = - 3DP
    机器人:layout_alignParentRight =真正的机器人:layout_marginRight = - 5DP>
    < / ImageView的>    < / RelativeLayout的>


解决方案

  @覆盖
公共无效的onClick(视图v){开关(v.getId()){案例R.id.costumButton:
    adapter.updateView(1);
打破;
.....
}公共类YourAdapter延伸BaseAdapter {
     私人INT visibleFlag = 0;
     ///
     ////
    公共无效更新视图(INT标志){
        visibleFlag =标志;
        notifydatasetchanged();
    }
   @覆盖
   公共查看getView(INT位置,查看convertView,父母的ViewGroup)
   {       查看MyView的= convertView;
       最终诠释POS =位置;       LayoutInflater李=(LayoutInflater)MyContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       MyView的= li.inflate(R.layout.favor_item,NULL);
       ImageView的IV =(ImageView的)MyView.findViewById(R.id.favor_item_image);
       iv.setImageResource(favorSites.get(POS));       deleteFavorImage =(ImageView的)MyView.findViewById(R.id.favDelete);
       如果(visibleFlag == 1)
            deleteFavorImage.setVisibility(View.VISIBLE);
       deleteFavorImage.setImageResource(R.drawable.dubtndelete);       返回MyView的;
   }

I have created one gridview and use custom adapter for that. I added two images inside grid view.one is image and another one looks like close button (which is the same in all grid view items). the close button is set invisible in the beginning, i have another button in my activity, what i want is : when i click this button, i want to set the close button in every element of my grid view, but for now, when click on it, nothing happens. below is my code :

    ImageView deleteFavorImage;
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.browser);
    .....

    GridView favorGrid = (GridView) findViewById(R.id.favorGrid);
    favorGrid.setAdapter(adapter);
    .....
    View customView = findViewById(R.id.costumButton);
    customView.setOnClickListener(this);

@Override
public void onClick(View v) {

    switch(v.getId()){

    case R.id.costumButton:
        deleteFavorImage.setVisibility(View.VISIBLE);
    break;
    .....
    }

This is my image adaptor code:

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

           View MyView = convertView;
           final int pos=position;

           LayoutInflater li = (LayoutInflater) MyContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
           MyView = li.inflate(R.layout.favor_item, null);


           ImageView iv = (ImageView) MyView.findViewById(R.id.favor_item_image);
           iv.setImageResource(favorSites.get(pos));

           deleteFavorImage = (ImageView) MyView.findViewById(R.id.favDelete);
           deleteFavorImage.setImageResource(R.drawable.dubtndelete);

           return MyView;
       }

And finally this is my XML file code:

           <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="85dp"
android:layout_height="85dp"
android:orientation="vertical"
android:background="@drawable/dufavframe" >

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="75dp"
    android:layout_height="75dp"
    android:orientation="vertical"
    android:layout_centerInParent="true"
    android:gravity="center">

    <com.test.favorsites.AspectRatioImageView android:layout_centerHorizontal="true"
        android:id="@+id/favor_item_image"
        android:layout_alignParentTop="true" android:layout_height="wrap_content"
        android:layout_width="match_parent" android:adjustViewBounds="true"/>
    </LinearLayout>


    <ImageView android:id="@+id/favDelete" android:visibility="invisible"
    android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_marginTop="-3dp" 
    android:layout_alignParentRight="true" android:layout_marginRight="-5dp">
    </ImageView>



    </RelativeLayout>

解决方案

@Override
public void onClick(View v) {

switch(v.getId()){

case R.id.costumButton:
    adapter.updateView(1);
break;
.....
}

public class YourAdapter extends BaseAdapter { 
     private int visibleFlag = 0;
     ///
     ////
    public void updateView(int flag) {
        visibleFlag = flag;
        notifydatasetchanged();
    }
   @Override
   public View getView( int position, View convertView, ViewGroup parent)
   {

       View MyView = convertView;
       final int pos=position;

       LayoutInflater li = (LayoutInflater)MyContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       MyView = li.inflate(R.layout.favor_item, null);


       ImageView iv = (ImageView) MyView.findViewById(R.id.favor_item_image);
       iv.setImageResource(favorSites.get(pos));

       deleteFavorImage = (ImageView) MyView.findViewById(R.id.favDelete);
       if (visibleFlag == 1)
            deleteFavorImage.setVisibility(View.VISIBLE);
       deleteFavorImage.setImageResource(R.drawable.dubtndelete);

       return MyView;
   }

这篇关于一个GridView元素的可见性设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆