用的EditText和IMGE但有一个按钮的GridView [英] Gridview with edittext and imge but with one button

查看:149
本文介绍了用的EditText和IMGE但有一个按钮的GridView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要的ImageView,EDITTEXT和TextView的每个字段网格视图,终于下方的一个按钮我尝试了很多codeS,但主要问题是在GridView中的每个字段的按钮副本了。除非我不提到它在我的code!
这里是$ C $ getView的C:

 公共查看getView(INT位置,查看convertView,父母的ViewGroup){
    // TODO自动生成方法存根
    视图V;
    如果(convertView == NULL){
             LayoutInflater充气=((活动)上下文).getLayoutInflater();
        V = inflater.inflate(R.layout.gridview,父母,假);            电视=(TextView中)v.findViewById(R.id.textView1);
            TX =(EditText上)v.findViewById(R.id.editText1);
            tv.setText(+ R.drawable.download);
            ImageView的IV =(ImageView的)v.findViewById(R.id.imageView1);
            iv.setImageResource(mThumbIds [位置]);
    }
    其他
    {
        V = convertView;
    }
    返回伏;

XML文件:

 < LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
  机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:方向=垂直>
< GridView控件
    的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:ID =@ + ID / GridView控件
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =WRAP_CONTENT
    机器人:columnWidth时=90dp
    机器人:比重=中心
    机器人:horizo​​ntalSpacing =10dp
    机器人:为numColumns =auto_fit
    机器人:stretchMode =columnWidth时
    机器人:verticalSpacing =10dp>< / GridView的>< ImageView的
    机器人:ID =@ + ID / imageView1
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:SRC =@绘制/下载/><的TextView
    机器人:ID =@ + ID / textView1
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:文字=TextView的/><的EditText
    机器人:ID =@ + ID / editText1
    机器人:layout_width =match_parent
    机器人:layout_height =WRAP_CONTENT
    机器人:EMS =10
    安卓的inputType =号>    < requestFocus的/>
< /&的EditText GT;    <按钮
        机器人:ID =@ + ID /按钮1
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:文字=按钮/>< / LinearLayout中>


解决方案

终于,我可以解决我的问题。(有ListView控件,但有没有编码相差无几)

 < LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT
    机器人:方向=垂直>    <的TextView
        机器人:ID =@ + ID /选择
        机器人:layout_width =30dp
        机器人:layout_height =30dp/>    < ListView控件
        机器人:ID =@机器人:ID /列表
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =512dp
        机器人:drawSelectorOnTop =FALSE/>    < RelativeLayout的
        机器人:layout_width =match_parent
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_weight =0.79> <按钮
            机器人:ID =@ + ID /按钮1
            机器人:layout_width =100dp
            机器人:layout_height =WRAP_CONTENT
            机器人:layout_alignParentLeft =真
            机器人:layout_alignParentTop =真
            机器人:文字=按钮/>    <按钮
            机器人:ID =@ + ID /按钮2
            机器人:layout_width =100dp
            机器人:layout_height =match_parent
            机器人:layout_alignParentRight =真
            机器人:layout_alignParentTop =真
            机器人:文字=按钮/>    < / RelativeLayout的>    < / LinearLayout中> < XML版本=1.0编码=UTF-8&GT?;<的LinearLayout
的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
机器人:方向=横向>    < ImageView的
    机器人:ID =@ + ID / PIC
    机器人:填充=2DIP
    机器人:layout_width =100dp
    机器人:layout_height =100dp
    机器人:SRC =@绘制/下载/><的EditText
        机器人:ID =@ + ID / editpizza
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_weight =1
        机器人:EMS =10
        机器人:身高=5DP
        安卓的inputType =数字
        机器人:宽=10dp>        < requestFocus的/>
    < /&的EditText GT;    <的TextView
    机器人:ID =@ + /标记
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:TEXTSIZE =40SP/>< / LinearLayout中>

Java的code:

 公共类ListView的扩展ListActivity {
        / **当第一次创建活动调用。 * /
        私人TextView的选择;
        私人的EditText选择;
        私有静态最后的String []项目= {مخصوص,مخلوط,یونانی,قارچوگوشت,پپرونی,مرغوقارچ,سبزیجات,دریایی};        @覆盖
        公共无效的onCreate(捆绑savedInstanceState){
            super.onCreate(savedInstanceState);
            的setContentView(R.layout.view);            setListAdapter(新IconicAdapter());
            选择=(的TextView)findViewById(R.id.selection);
            选择=(EditText上)findViewById(R.id.editpizza);
        }        公共无效OnListItemClick(ListView的父母,视图V,INT位置,长的id){
            selection.setText(项目[位置]);        }        私人字符串getModel(INT位置){
            收益率(((IconicAdapter)getListAdapter())的getItem(位置)。);
        }
        // =====================
        //新建类从这里开始
        // =====================
        类IconicAdapter扩展ArrayAdapter<串GT; {            公共IconicAdapter(){
                超(ListView.this,R.layout.row,R.id.label,项目);
            }            公共查看getView(INT位置,查看convertView,父母的ViewGroup){
                查看排= super.getView(位置,convertView,父母);
                观点持有者=(视图)row.getTag();                如果(持有者== NULL){
                    持有人=新的视图(行);
                    row.setTag(保持器);
                }                如果(getModel(位置).contentEquals(مخصوص)){
                    holder.icon.setImageResource(R.drawable.download);
                }
                否则,如果(getModel(位置)。载有(دریایی)){
                    holder.icon.setImageResource(R.drawable.drink);
                }
                否则,如果(getModel(位置)。载有(سبزیجات)){
                    holder.icon.setImageResource(R.drawable.french);
                }
                否则,如果(getModel(位置)。载有(مرغوقارچ)){
                    holder.icon.setImageResource(R.drawable.frenchfrise);
                }
                否则,如果(getModel(位置)。载有(پپرونی)){
                    holder.icon.setImageResource(R.drawable.sandwich);
                }
                否则,如果(getModel(位置)。载有(قارچوگوشت)){
                    holder.icon.setImageResource(R.drawable.ic_launcher);
                }
                否则,如果(getModel(位置)。载有(یونانی)){
                    holder.icon.setImageResource(R.drawable.sandwich);
                }
                否则,如果(getModel(位置)。载有(مخلوط)){
                    holder.icon.setImageResource(R.drawable.sandwich);
                }
                否则,如果(getModel(位置)。载有(مخصوص)){
                    holder.icon.setImageResource(R.drawable.sandwich);
                }                返回(行);
            }
        }
    }
   公共类视图{
    ImageView的图标= NULL;    视图(View基地){
        this.icon =(ImageView的)base.findViewById(R.id.pic);
    }
}

I need a grid view with imageView, editText and textView in each field, and finally one button below I try many codes, but the main problem is that button copies in each field of gridview too. unless I dont mention it in my code! here is code of getView:

 public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View v;
    if(convertView==null){
             LayoutInflater inflater = ((Activity)context).getLayoutInflater();
        v= inflater.inflate(R.layout.gridview,parent, false);

            tv = (TextView)v.findViewById(R.id.textView1);
            tx = (EditText)v.findViewById(R.id.editText1);
            tv.setText(""+R.drawable.download);
            ImageView iv = (ImageView)v.findViewById(R.id.imageView1);
            iv.setImageResource(mThumbIds[position]);




    }
    else
    {
        v = convertView;
    }
    return v;

xml file:

       <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<GridView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:columnWidth="90dp"
    android:gravity="center"
    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:stretchMode="columnWidth"
    android:verticalSpacing="10dp" >

</GridView>

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/download" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="textview" />

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="number" >

    <requestFocus />
</EditText>





    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />



</LinearLayout>

解决方案

finally I could solve my problem .(with listview but there's not much difference between coding)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/selection"
        android:layout_width="30dp"
        android:layout_height="30dp" />

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="512dp"
        android:drawSelectorOnTop="false" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.79" >

 <Button
            android:id="@+id/button1"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="Button" />

    <Button
            android:id="@+id/button2"
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:text="Button" />

    </RelativeLayout>

    </LinearLayout>

 <?xml version="1.0" encoding="utf-8"?>

<LinearLayout
xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width  = "fill_parent"
android:layout_height = "wrap_content"
android:orientation   = "horizontal" >

    <ImageView
    android:id = "@+id/pic"
    android:padding       = "2dip"
    android:layout_width  = "100dp"
    android:layout_height = "100dp"
    android:src = "@drawable/download" />

<EditText
        android:id="@+id/editpizza"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="10"
        android:height="5dp"
        android:inputType="number"
        android:width="10dp" >

        <requestFocus />
    </EditText>

    <TextView
    android:id = "@+id/label"
    android:layout_width  = "wrap_content"
    android:layout_height = "wrap_content"
    android:textSize      = "40sp" />

</LinearLayout>

java code :

 public class ListView extends ListActivity {
        /** Called when the activity is first created. */
        private TextView selection;
        private EditText choose;
        private static final String[] items = {"مخصوص", "مخلوط", "یونانی", "قارچ و گوشت", "پپرونی", "مرغ و قارچ", "سبزیجات", "دریایی"};

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.view);

            setListAdapter(new IconicAdapter());
            selection = (TextView)findViewById(R.id.selection);
            choose=(EditText) findViewById(R.id.editpizza);
        }

        public void OnListItemClick(ListView parent, View v, int position, long id){
            selection.setText(items[position]);

        }

        private String getModel(int position){
            return(((IconicAdapter)getListAdapter()).getItem(position));
        }


        //=====================
        //New Class Starts Here
        //=====================
        class IconicAdapter extends ArrayAdapter<String> {

            public IconicAdapter() {
                super(ListView.this, R.layout.row, R.id.label, items);
            }

            public View getView(int position, View convertView, ViewGroup parent){          
                View row = super.getView(position, convertView, parent);
                view holder = (view)row.getTag();

                if(holder == null){                                                 
                    holder = new view(row);
                    row.setTag(holder);
                }

                if(getModel(position).contentEquals("مخصوص")){
                    holder.icon.setImageResource(R.drawable.download);
                }
                else if (getModel(position).contains("دریایی")){
                    holder.icon.setImageResource(R.drawable.drink);
                }
                else if (getModel(position).contains("سبزیجات")){
                    holder.icon.setImageResource(R.drawable.french);
                }
                else if (getModel(position).contains("مرغ و قارچ")){
                    holder.icon.setImageResource(R.drawable.frenchfrise);
                }
                else if (getModel(position).contains("پپرونی")){
                    holder.icon.setImageResource(R.drawable.sandwich);
                }
                else if (getModel(position).contains("قارچ و گوشت")){
                    holder.icon.setImageResource(R.drawable.ic_launcher);
                }
                else if (getModel(position).contains("یونانی")){
                    holder.icon.setImageResource(R.drawable.sandwich);
                }
                else if (getModel(position).contains("مخلوط")){
                    holder.icon.setImageResource(R.drawable.sandwich);
                }
                else if (getModel(position).contains("مخصوص")){
                    holder.icon.setImageResource(R.drawable.sandwich);
                }

                return(row);
            }       
        }
    }


   public class view {
    ImageView icon = null;

    view(View base){
        this.icon = (ImageView)base.findViewById(R.id.pic);
    }
}

这篇关于用的EditText和IMGE但有一个按钮的GridView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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