package com.example.wang.myapplication;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
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 Main2Activity extends AppCompatActivity { GridView gv_1;
List<MyClass> lm; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2); gv_1=(GridView)findViewById(R.id.gv_1); lm=new ArrayList<MyClass>(); MyClass myClass=new MyClass(R.drawable.f1,"名称1"); lm.add(myClass);
lm.add(new MyClass(R.drawable.f2,"名称2")); lm.add(new MyClass(R.drawable.f3,"名称3")); lm.add(new MyClass(R.drawable.f4,"名称4")); lm.add(new MyClass(R.drawable.f5,"名称5")); lm.add(new MyClass(R.drawable.f6,"名称6")); lm.add(new MyClass(R.drawable.f7,"名称7")); lm.add(new MyClass(R.drawable.f8,"名称8")); lm.add(new MyClass(R.drawable.f9,"名称9")); lm.add(new MyClass(R.drawable.f10, "名称10")); lm.add(new MyClass(R.drawable.f10, "名称11")); lm.add(new MyClass(R.drawable.f10, "名称12")); final GridAdapter gridAdapter=new GridAdapter(); gv_1.setAdapter(gridAdapter); gv_1.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) { final View view1=View.inflate(Main2Activity.this, R.layout.activity_main221, null); new AlertDialog.Builder(Main2Activity.this)
.setView(view1)
.setNegativeButton("添加", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { EditText et_1=(EditText)view1.findViewById(R.id.et_1); String str12=et_1.getText().toString(); if (str12.length()>=5||str12.trim().length()==0)
{
Toast.makeText(Main2Activity.this, "不符合命名规则,请重新命名",
Toast.LENGTH_SHORT).show(); return;
} EditText et_2=(EditText)view1.findViewById(R.id.et_2); String str22=et_2.getText().toString(); String a="a",aa="aa",aaa="aaa",aaaa="aaaa"; if (str22.equals(a))
{
lm.add(new MyClass(R.drawable.a,str12));
}
else if (str22.equals(aa))
{
lm.add(new MyClass(R.drawable.aa,str12));
}
else if (str22.equals(aaa))
{
lm.add(new MyClass(R.drawable.aaa,str12));
}
else if (str22.equals(aaaa))
{
lm.add(new MyClass(R.drawable.aaaa,str12));
}
else
{
Toast.makeText(Main2Activity.this, "请从a,aa,aaa,aaaa中选择",
Toast.LENGTH_SHORT).show();
} gridAdapter.notifyDataSetChanged();
}
})
.setNeutralButton("取消",null)
.setPositiveButton("修改", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MyClass myClass = lm.get(position); EditText et_1 = (EditText) view1.findViewById(R.id.et_1); String str12 = et_1.getText().toString(); if (str12.length() >= 5) {
Toast.makeText(Main2Activity.this, "不符合命名规则,请重新命名",
Toast.LENGTH_SHORT).show();
return;
} EditText et_2 = (EditText) view1.findViewById(R.id.et_2); String str22 = et_2.getText().toString(); String a = "a", aa = "aa", aaa = "aaa", aaaa = "aaaa"; if (str22.equals(a)) {
if (str12.length() == 0) {
myClass.setImg(R.drawable.a);//只修改图片
} else {
myClass.setImg(R.drawable.a);
myClass.setName(str12);
}
} else if (str22.equals(aa)) {
if (str12.length() == 0) {
myClass.setImg(R.drawable.aa);
} else {
myClass.setImg(R.drawable.aa);
myClass.setName(str12);
}
} else if (str22.equals(aaa)) {
if (str12.length() == 0) {
myClass.setImg(R.drawable.aaa);
} else {
myClass.setImg(R.drawable.aaa);
myClass.setName(str12);
}
} else if (str22.equals(aaaa)) {
if (str12.length() == 0) {
myClass.setImg(R.drawable.aaaa);
} else {
myClass.setImg(R.drawable.aaaa);
myClass.setName(str12);
}
} else if (str22.length() == 0) {
if (str12.length() == 0) {
Toast.makeText(Main2Activity.this, "请至少修改一项内容", Toast.LENGTH_SHORT).show();
} else {
myClass.setName(str12);
}
} else {
Toast.makeText(Main2Activity.this, "请从a,aa,aaa,aaaa中选择", Toast.LENGTH_SHORT).show();
} gridAdapter.notifyDataSetChanged();
}
})
.show();
}
}); gv_1.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
lm.remove(position);
gridAdapter.notifyDataSetChanged();
return true;
}
}); } class GridAdapter extends BaseAdapter
{
@Override
public int getCount() {
return lm.size();
} @Override
public Object getItem(int position) {
return lm.get(position);
} @Override
public long getItemId(int position) {
return 0;
} @Override
public View getView(int position, View convertView, ViewGroup parent) { MyClass myClass=lm.get(position); if (convertView==null)
{
Log.e("TAG", "适配器 getView=" + position);
convertView=View.inflate(Main2Activity.this,R.layout.activity_main21,null);
}
ImageView imageView=(ImageView)convertView.findViewById(R.id.iv_1); imageView.setImageResource(myClass.getImg()); TextView textView=(TextView)convertView.findViewById(R.id.tv_1); if (myClass.getName().length()>=5||myClass.getName().trim().length()==0)
{
Toast.makeText(Main2Activity.this, myClass.getName()+"不符合命名规则,请重新命名",
Toast.LENGTH_LONG).show(); textView.setText("");
}
else
{
textView.setText(myClass.getName());
} return convertView;
}
} class MyClass
{
private int img; private String name; public int getImg() {
return img;
} public void setImg(int img) {
this.img = img;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public MyClass(int img,String name)
{
this.img=img;
this.name=name;
}
}
}

java

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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.wang.myapplication.Main2Activity">
<GridView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/gv_1"
android:numColumns="4"
android:gravity="center"
android:horizontalSpacing="20dp">
</GridView> </RelativeLayout>

activity_main2

<?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="70dp"
android:layout_height="70dp"
android:id="@+id/iv_1"/>
<TextView
android:layout_width="70dp"
android:layout_height="wrap_content"
android:gravity="center"
android:id="@+id/tv_1"/> </LinearLayout>

activity_main21

<?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="50dp"
android:layout_marginTop="5dp"
android:gravity="center"
android:hint="请从a,aa,aaa,aaaa,f1~f10中选择一张图"
android:id="@+id/et_2" />
<EditText
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="5dp"
android:gravity="center"
android:hint="请给图片命名"
android:id="@+id/et_1" /> </LinearLayout>

activity_main221

1.初始运行界面

2.单击效果图

3.添加按钮效果

3.1 添加的图片不在drawable里效果

3.2 添加图片名称不符合要求效果,程序中要求名称字符长度小于5

3.3.添加完四张图片的效果

4 修改效果

4.1 修改图片名称4为1234效果

4.2修改  名称7对应的图片为a效果

5.长按效果,初始状态,长按aaaa后的效果,再长按aaa的效果

GrideVlew提供点击按钮添加新数据,单击项目修改,长按删除功能的更多相关文章

  1. win32 htmlayout点击按钮创建新窗口,以及按钮图片样式

    最近在做一个C++ win32的桌面图形程序,我不是C++程序员,做这个只是因为最近没什么java的活. windows api,之前接触的时候,还是大学,那时用这个开发打飞机游戏纯粹是娱乐.现在基本 ...

  2. 【HTML5】页面点击按钮添加一行 删除一行 全选 反选 全不选

    页面点击按钮添加一行    删除一行   全选   反选  全不选 页面效果图如下 html页面代码 <!DOCTYPE html> <html> <head> & ...

  3. 小生功能贴<一> --- 动态添加应用 具有长按删除功能

    ---恢复内容开始--- 动态添加应用 具有长按删除功能 功能如下图:                (图片显示功能不是你要的,那就默默关闭页面吧) 设计思路: 页面一:用girdview网格显示图标 ...

  4. JS点击按钮打开新的独立页面

    工作中遇到需要点击按钮弹出一个独立的页面,并显示指定内容的问题,查了一些资料后,得到以下方法: window.open('locationPage.html', '_blank', 'height=1 ...

  5. FineUI 点击按钮添加标签页

    <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat=&quo ...

  6. PyQt5点击按钮产生新窗体

    import sys from PyQt5.QtWidgets import QApplication,QWidget from form1 import Ui_Form1 from form2 im ...

  7. yii防止延迟用户多次点击按钮重复提交数据

    是不是被用户的行为所困扰? 一. 一个表单用户点击提交按钮了N次,这也导致了数据提交了N次. 为了此受到了测试的欺辱,受到了老板的批评? 不用怕,它就是来拯救你的. 第一步:打开命令行,敲入 comp ...

  8. 点击按钮添加一行,和本行的删除功能,序号变动,name属性更改

    <!--html结构--> <div> <input type="button" value="添加一行" onclick=&qu ...

  9. Xamarin.Forms ListView点击按钮刷新最新数据

    最近在研究Xamarin的东西,做到ListView遇到了一些瓶颈,像在数据庞大的情况下,该怎么针对ListView中的数据分组呢? 基于能力有限的问题,暂时写了一个只可以实现功能的临时解决方案,毕竟 ...

随机推荐

  1. 微信图片上传,遇到一个神奇的jgp

    微信图片上传,获取图片base64遇到一个神奇的   jgp var imgFn = function (event) { event.preventDefault(); var id = '#'+$ ...

  2. vue+element 切换正式和测试环境

    1.package.json { "name": "element-starter", "description": "A Vue ...

  3. 转:UINavigationBar返回上一级出现nested pop animation can result in corrupted navigation bar

    [self.navigationController popViewControllerAnimated:NO]; 出现上面的错误是因为pop的时候要确保先让本页面加载完成,即如果在viewDidLo ...

  4. Linux下U盘、SD卡挂载与卸载

    1.手动挂载/卸载U盘.SD卡 对于ARM Linux来说,第一次使用U盘或SD时,U盘这个文件目录是不能直接进入的,我们需要对其进行挂载,然后再接下来的使用中就可以直接进行使用了.通过再网上查资料, ...

  5. python安装pymssql

    安装pymssql pip install pymssql 关于python安装pymssql报错export PYMSSQL_BUILD_WITH_BUNDLED_FREETDS=1 然后再 pip ...

  6. 生成电脑的ssh key值

    通过命令 ssh-keygen -t rsa -C "你的邮箱" 然后在用户目录下找到.ssh文件夹,这个是隐藏的,然后打开id_rsa.pub文件,里面的内容就是需要的ssh k ...

  7. Linux文件系统_每一个的意义

    2017年1月10日, 星期二 Linux文件系统_每一个的意义 rootfs: 根文件系统 FHS:Linux /boot: 系统启动相关的文件,如内核.initrd,以及grub(bootload ...

  8. 视差插件parallarx

    github上的demo,自己拿来改了改. <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...

  9. [vmware]另类解决vmware关闭win10死机或蓝屏问题

    升级win10后在使用虚拟机发生一个问题,本人的win10版本为win10 9879, 在使用vmware时,当关机会整个系统死机,在网上搜索后发现这是由于win10内核升级导致vmware不兼容,最 ...

  10. 【转】 jquery easyui datagrid使用,分页、排序、查询

    $('#dg').datagrid({ url: "xxx.ashx",                    pagination: true,                p ...