zoukankan      html  css  js  c++  java
  • 给ListVlew提供点击按钮添加新数据,单击项目修改,长按删除功能,

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:paddingBottom="@dimen/activity_vertical_margin"
     7     android:paddingLeft="@dimen/activity_horizontal_margin"
     8     android:paddingRight="@dimen/activity_horizontal_margin"
     9     android:paddingTop="@dimen/activity_vertical_margin"
    10     tools:context="com.example.wang.testapp2.TestActivity10"
    11     android:orientation="vertical">
    12 
    13     <GridView
    14         android:layout_width="match_parent"
    15         android:layout_height="wrap_content"
    16         android:id="@+id/gv_1"
    17         android:numColumns="4"
    18         android:stretchMode="columnWidth"
    19         android:gravity="center"
    20         android:horizontalSpacing="30dp"
    21         android:columnWidth="120dp"
    22         ></GridView>
    23 
    24       <Button
    25           android:layout_width="wrap_content"
    26           android:layout_height="wrap_content"
    27           android:text="添加"
    28           android:onClick="bt10_OnClick"/>
    29 </LinearLayout>
    .xml
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:orientation="vertical"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:padding="20dp">
     7 
     8     <EditText
     9         android:layout_width="match_parent"
    10         android:layout_height="wrap_content"
    11         android:hint="请选择图片"
    12         android:id="@+id/et_3"/>
    13     <EditText
    14         android:layout_width="match_parent"
    15         android:layout_height="wrap_content"
    16         android:hint="请输入名称"
    17         android:id="@+id/et_4"/>
    18 
    19 
    20 
    21 </LinearLayout>
    gridadapter.xml
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:orientation="vertical"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent">
     6 
     7     <ImageView
     8         android:layout_width="110dp"
     9         android:layout_height="90dp"
    10         android:id="@+id/iv_3"
    11         android:layout_gravity="center"/>
    12     <TextView
    13         android:layout_width="wrap_content"
    14         android:layout_height="wrap_content"
    15         android:id="@+id/tv_9"
    16         android:text="内容"
    17         android:layout_gravity="center"/>
    18 
    19 </LinearLayout>
    listview_layout.xml
      1 package com.example.wang.testapp2;
      2 
      3 import android.app.ActionBar;
      4 import android.app.AlertDialog;
      5 import android.content.DialogInterface;
      6 import android.support.v7.app.AppCompatActivity;
      7 import android.os.Bundle;
      8 import android.util.Log;
      9 import android.view.View;
     10 import android.view.ViewGroup;
     11 import android.widget.AbsListView;
     12 import android.widget.AdapterView;
     13 import android.widget.BaseAdapter;
     14 import android.widget.EditText;
     15 import android.widget.GridView;
     16 import android.widget.ImageView;
     17 import android.widget.ListView;
     18 import android.widget.TextView;
     19 import android.widget.Toast;
     20 
     21 import java.util.ArrayList;
     22 import java.util.List;
     23 
     24 public class TestActivity10 extends AppCompatActivity {
     25 
     26     GridView gv_1;
     27 
     28     List<MyClass> lm;
     29 //    List<Integer> liv;
     30 
     31 
     32     @Override
     33     protected void onCreate(Bundle savedInstanceState) {
     34         super.onCreate(savedInstanceState);
     35         setContentView(R.layout.activity_test10);
     36 
     37         GridView gv_1=(GridView)findViewById(R.id.gv_1);
     38 
     39         lm=new ArrayList<>();
     40 
     41         final MyClass myClass=new MyClass(R.drawable.f1,"美食1");
     42 
     43         lm.add(myClass);
     44 
     45         lm.add(new MyClass(R.drawable.f2,"美食2"));
     46         lm.add(new MyClass(R.drawable.f3,"美食3"));
     47         lm.add(new MyClass(R.drawable.f4,"美食4"));
     48         lm.add(new MyClass(R.drawable.f5,"美食5"));
     49         lm.add(new MyClass(R.drawable.f6,"美食6"));
     50         lm.add(new MyClass(R.drawable.f7,"美食7"));
     51         lm.add(new MyClass(R.drawable.f8,"美食8"));
     52 
     53 
     54         GridAdapter gridAdapter=new GridAdapter();
     55 
     56         gv_1.setAdapter(gridAdapter);
     57 
     58 
     59 
     60 
     61 
     62 //        //1 数据 图片的id
     63 //        liv =new ArrayList<>();
     64 //        liv.add(R.drawable.f1);
     65 //        liv.add(R.drawable.f2);
     66 //        liv.add(R.drawable.f3);
     67 //        liv.add(R.drawable.f4);
     68 //        liv.add(R.drawable.f5);
     69 //        liv.add(R.drawable.f6);
     70 //        liv.add(R.drawable.f7);
     71 //        liv.add(R.drawable.f8);
     72 //        liv.add(R.drawable.f9);
     73 //        liv.add(R.drawable.f10);
     74 
     75         final GridAdapter im=new GridAdapter();
     76 
     77         gv_1.setAdapter(im);
     78 
     79         gv_1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
     80             @Override
     81             public void onItemClick(AdapterView<?> parent, View view, int position, final long id) {
     82 
     83                 final View view1=View.inflate(TestActivity10.this,R.layout.gridadapter_view,null);
     84 
     85                 new AlertDialog.Builder(TestActivity10.this)
     86                         .setTitle("请操作...")
     87                         .setView(view1)
     88                         .setPositiveButton("修改", new DialogInterface.OnClickListener() {
     89                             @Override
     90                             public void onClick(DialogInterface dialog, int which) {
     91 
     92                                 EditText et_4 = (EditText) view1.findViewById(R.id.et_4);
     93 
     94                                 String string2 = et_4.getText().toString();
     95 
     96                                     myClass.setName(string2);
     97 
     98 
     99                                 EditText et_3 = (EditText) view1.findViewById(R.id.et_3);
    100 
    101                                 String string1 = et_3.getText().toString();
    102 
    103                                 String f9 = "f9", f10 = "f10";
    104 
    105                                 if (string1.equals(f9)) {
    106 
    107                                     myClass.setImg(R.drawable.f9);
    108                                 } else if (string1.equals(f10)) {
    109                                     myClass.setImg(R.drawable.f10);
    110                                 }
    111                                 else {
    112 
    113                                     if (string2.length() == 0 && string1.length() == 0) {
    114 
    115                                         Toast.makeText(TestActivity10.this, "请至少修改一项", Toast.LENGTH_SHORT).show();
    116                                     }
    117                                 }
    118 
    119                             }
    120                         })
    121                         .setNegativeButton("取消", null)
    122                         .show();
    123 
    124 
    125             }
    126         });
    127 
    128         //长按删除的监听器
    129         gv_1.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
    130             @Override
    131             public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
    132 
    133                 //1.删除数据
    134                 // 从集合里删除长按的数据
    135                 lm.remove(position);
    136 
    137                 //2.刷新视图,看到效果
    138                 // 通知适配器,数据源改变了
    139                 im.notifyDataSetChanged();
    140 
    141                 Toast.makeText(TestActivity10.this, "删除了记录索引="+position, Toast.LENGTH_SHORT).show();
    142 
    143                 return true;//事件已经被消费,不要在处理了
    144             }
    145         });
    146 
    147 
    148     }
    149 
    150     public void bt10_OnClick(View v)
    151     {
    152 
    153         final View view1=View.inflate(TestActivity10.this,R.layout.gridadapter_view,null);
    154 
    155         new AlertDialog.Builder(TestActivity10.this)
    156                 .setTitle("请操作...")
    157                 .setView(view1)
    158                 .setPositiveButton("添加",null)
    159                 .setNegativeButton("取消", null)
    160                 .show();
    161 
    162     }
    163 
    164 
    165     class  MyClass
    166     {
    167         private int img;
    168 
    169         private String name;
    170 
    171 
    172         public int getImg() {
    173             return img;
    174         }
    175 
    176         public void setImg(int img) {
    177             this.img = img;
    178         }
    179 
    180         public String getName() {
    181             return name;
    182         }
    183 
    184         public void setName(String name) {
    185             this.name = name;
    186         }
    187 
    188         public MyClass(int img,String name)
    189         {
    190             this.img=img;
    191             this.name=name;
    192         }
    193     }
    194 
    195 
    196 //     //适配器
    197 //
    198 //    class  ImageAdapter extends BaseAdapter
    199 //    {
    200 //        @Override
    201 //        public int getCount() {
    202 //            return liv.size();
    203 //        }
    204 //
    205 //        @Override
    206 //        public Object getItem(int position) {
    207 //            return liv.get(position);
    208 //        }
    209 //
    210 //        @Override
    211 //        public long getItemId(int position) {
    212 //            return 0;
    213 //        }
    214 //
    215 //        @Override
    216 //        public View getView(int position, View convertView, ViewGroup parent) {
    217 //
    218 //            //1. 得到数据 图片的id
    219 //            Integer ivid = liv.get(position);
    220 //
    221 //            //2.准备View
    222 //            if (convertView == null) {
    223 //                convertView = new ImageView(TestActivity10.this);
    224 //            }
    225 //
    226 //            //3.适配
    227 //            // 转换
    228 //            ImageView imageView = (ImageView) convertView;
    229 //
    230 //            imageView.setImageResource(ivid);
    231 //
    232 ////            imageView.setMaxWidth(70);
    233 ////            imageView.setMaxHeight(70);
    234 //
    235 //            imageView.setLayoutParams(new GridView.LayoutParams(110, 110));
    236 //
    237 //
    238 //            return imageView;
    239 
    240     class GridAdapter extends BaseAdapter
    241     {
    242         @Override
    243         public int getCount() {
    244             return lm.size();
    245         }
    246 
    247         @Override
    248         public Object getItem(int position) {
    249             return lm.get(position);
    250         }
    251 
    252         @Override
    253         public long getItemId(int position) {
    254             return 0;
    255         }
    256 
    257         @Override
    258         public View getView(int position, View convertView, ViewGroup parent) {
    259             MyClass myClass=lm.get(position);
    260 
    261             if (convertView==null)
    262             {
    263                 Log.e("TAG","适配器getView="+position);
    264 
    265                 convertView=View.inflate(TestActivity10.this,R.layout.listview_layout,null);
    266             }
    267 
    268             ImageView imageView=(ImageView)convertView.findViewById(R.id.iv_3);
    269             imageView.setImageResource(myClass.getImg());
    270 
    271             TextView textView=(TextView)convertView.findViewById(R.id.tv_9);
    272             textView.setText(myClass.getName());
    273 
    274 
    275             return convertView;
    276         }
    277     }
    278 
    279 }
    .java

  • 相关阅读:
    极速安装JumpServer
    高并发限流策略
    JDK1.8源码分析:Future和FutureTask-任务异步执行结果
    nginx 转发 header 数据丢失
    zookpeer 和 redis 集群内一致性协议 及 选举 对比
    Spring Boot 中 Druid 的监控页面配置
    eclipse使用正则表达式查找替换
    jvm 线程状态
    Redis做分布式锁
    Dubbo的异常处理
  • 原文地址:https://www.cnblogs.com/arxk/p/5518952.html
Copyright © 2011-2022 走看看