zoukankan      html  css  js  c++  java
  • GridView

    test_gridview代码:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.example.my.myapplication.Test_GridView"
        android:orientation="vertical">
    
        <GridView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/gv_1"
            android:numColumns="4"
            android:stretchMode="columnWidth"
            android:horizontalSpacing="30dp"></GridView>
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="添加"
            android:onClick="bt_onClick"
            android:id="@+id/bt_1"/>
    </LinearLayout>
    View Code

    gridview代码:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <ImageView
            android:layout_width="110dp"
            android:layout_height="110dp"
            android:src="@drawable/f1"
            android:id="@+id/iv_2"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv_9"/>
    
    </LinearLayout>
    View Code

    tianjia代码:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <EditText
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:hint="从a,b,c里面选择图片"
                 android:id="@+id/et_3"/>
        <EditText
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:hint="请输入名称"
                 android:id="@+id/et_4"/>
    </LinearLayout>
    View Code

    Activity代码:

    package com.example.my.myapplication;
    
    import android.app.AlertDialog;
    import android.content.DialogInterface;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.BaseAdapter;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.GridView;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Test_GridView extends AppCompatActivity {
    
        GridView gv_1;
        List<MyClass> liv;
        TextView tv_9;
        ImageView iv_2;
        Button bt_1;
        final ImageAdapter imageAdapter = new ImageAdapter();
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_test__grid_view);
    
            gv_1=(GridView)findViewById(R.id.gv_1);
            tv_9=(TextView)findViewById(R.id.tv_9);
            iv_2=(ImageView)findViewById(R.id.iv_2);
            bt_1=(Button)findViewById(R.id.bt_1);
    
            //1.数据 图片的id
            liv=new ArrayList<>();
            MyClass myClass=new MyClass(R.drawable.f1,"美食1的价格");
            liv.add(myClass);
            liv.add(new MyClass(R.drawable.f2,"美食2的价格"));
            liv.add(new MyClass(R.drawable.f3,"美食3的价格"));
            liv.add(new MyClass(R.drawable.f4,"美食4的价格"));
            liv.add(new MyClass(R.drawable.f5,"美食5的价格"));
            liv.add(new MyClass(R.drawable.f6,"美食6的价格"));
            liv.add(new MyClass(R.drawable.f7,"美食7的价格"));
            liv.add(new MyClass(R.drawable.f8,"美食8的价格"));
            liv.add(new MyClass(R.drawable.f9,"美食9的价格"));
    
    
            final ImageAdapter im=new ImageAdapter();
    
            gv_1.setAdapter(im);
    
            gv_1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    final MyClass myClass = liv.get(position);
                    LayoutInflater layoutInflater = getLayoutInflater();
                    final View view1 = layoutInflater.inflate(R.layout.tianjia, null);
                    new AlertDialog.Builder(Test_GridView.this)
                            .setTitle("修改内容")
                            .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    EditText et_3=(EditText)view1.findViewById(R.id.et_3);
                                    String string1=et_3.getText().toString();
                                    EditText et_4 = (EditText)view1.findViewById(R.id.et_4);
                                    String string2 = et_4.getText().toString();
                                    String a="a",b="b",c="c",d="d";
                                    if (string1.equals(a))
                                    {
                                        if (string2.length() ==0)
                                        {
                                            myClass.setImg(R.drawable.a1);
                                        }
                                        else
                                        {
                                            myClass.setImg(R.drawable.a1);
                                            myClass.setContent(string2);
                                        }
                                    }
                                    else if (string1.equals(b))
                                    {
                                        if (string2.length() ==0)
                                        {
                                            myClass.setImg(R.drawable.a2);
                                        }
                                        else
                                        {
                                            myClass.setImg(R.drawable.a2);
                                            myClass.setContent(string2);
                                        }
                                    }
                                    else if (string1.equals(c))
                                    {
                                        if (string2.length() ==0)
                                        {
                                            myClass.setImg(R.drawable.a3);
                                        }
                                        else
                                        {
                                            myClass.setImg(R.drawable.a3);
                                            myClass.setContent(string2);
                                        }
                                    }
    
                                    else
                                    {
                                        Toast.makeText(Test_GridView.this, "请做出至少一项修改", Toast.LENGTH_SHORT).show();
                                    }
                                    imageAdapter.notifyDataSetChanged();
                                }
                            })
                            .setView(view1)
                            .show();
                }
            });
            //长按删除的监听器
            gv_1.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
                @Override
                public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
    
                    //删除数据
                    //从集合里删除长按的数据
                    liv.remove(position);
    
                    //刷新视图,看到效果
                    //通知适配器,数据源改变了
                    im.notifyDataSetChanged();
                    Toast.makeText(Test_GridView.this, "删除了记录索引 = "+position, Toast.LENGTH_SHORT).show();
                    return true;//事件已经被消费,不要再处理了
                }
            });
    
        }
        public void bt_onClick(View v)
        {
            final View view=View.inflate(Test_GridView.this,R.layout.tianjia,null);
            new AlertDialog.Builder(Test_GridView.this)
                    .setTitle("请操作。。。")
                    .setView(view)
                    .setPositiveButton("添加", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            EditText et_3=(EditText)view.findViewById(R.id.et_3);
                            String string1=et_3.getText().toString();
                            EditText et_4 = (EditText)view.findViewById(R.id.et_4);
                            String string2 = et_4.getText().toString();
                            String a="a",b="b",c="c",d="d";
                            if(string1.equals(a))
                            {
                                liv.add(new MyClass(R.drawable.a1,string2));
                            }
                            else if (string1.equals(b))
                            {
                                liv.add(new MyClass(R.drawable.a2,string2));
                            }
                            else if (string1.equals(c))
                            {
                                liv.add(new MyClass(R.drawable.a3,string2));
                            }
    
                            else 
                            {
                                Toast.makeText(Test_GridView.this, "请从a,b,c中选择", Toast.LENGTH_SHORT).show();
                            }
                            imageAdapter.notifyDataSetChanged();
    
    
                        }
                    })
                    .setNegativeButton("取消",null)
                    .setView(view)
                    .show();
        }
    
        class MyClass
        {
            private int img;
            private String content;
            public  int getImg()
            {
                return img;
            }
            public void setImg(int img)
            {
                this.img=img;
            }
            public String getContent()
            {
                return content;
            }
            public void setContent(String content)
            {
                this.content=content;
            }
            public MyClass(int img,String content)
            {
                this.img=img;
                this.content=content;
            }
        }
    
        //适配器
    
        class ImageAdapter extends BaseAdapter
        {
            @Override
            public int getCount() {
                return liv.size();
            }
    
            @Override
            public Object getItem(int position) {
                return liv.get(position);
            }
    
            @Override
            public long getItemId(int position) {
                return 0;
            }
    
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
    
                //1.得到数据 图片的id
                MyClass myClass=liv.get(position);
    
                //2.准备View
                if (convertView==null)
                {
                    convertView=View.inflate(Test_GridView.this,R.layout.gridview,null);
    
                }
    
                //3.适配
                //转换
                ImageView imageView=(ImageView)convertView.findViewById(R.id.iv_2);
                imageView.setImageResource(myClass.getImg());
    
    //            imageView.setMaxWidth(70);
    //            imageView.setMaxHeight(70);
                //imageView.setLayoutParams(new GridView.LayoutParams(70,70));
    
                TextView textView=(TextView)convertView.findViewById(R.id.tv_9);
                textView.setText(myClass.getContent());
                return convertView;
            }
        }
    }
    View Code
  • 相关阅读:
    第七周作业
    人月神话之没有银弹
    第六周作业
    第五周作业
    第四周作业
    第三周作业
    人月神话之沟通
    第二周作业
    第一周作业
    第八周作业
  • 原文地址:https://www.cnblogs.com/beens/p/5520316.html
Copyright © 2011-2022 走看看