Android——ListView相关作业(修改版)
给GridView提供点击按钮添加新数据,单击项目修改,长按删除功能
activity_practise7的layout文件:
<?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.hanqi.testapp2.PractiseActivity7"
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:gravity="center"
android:horizontalSpacing="30dp"></GridView>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击添加"
android:onClick="bt_tj_onClick"/>
</LinearLayout>
activity_practise7_1的layout文件:
<?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:id="@+id/et_3"
android:gravity="center"
android:hint="从a,b,c,d里面选择图片"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_4"
android:hint="给图片命名"
android:gravity="center"/>
</LinearLayout>
gridview_layout的layout文件:
<?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:id="@+id/iv_3"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_3"/>
</LinearLayout>
java类:
package com.hanqi.testapp2; 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.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 PractiseActivity7 extends AppCompatActivity { GridView gv_1;
List<MyClass> liv;
TextView tv_3;
ImageView iv_3;
final ImageAdapter imageAdapter = new ImageAdapter(); @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_practise7);
gv_1 = (GridView)findViewById(R.id.gv_1);
tv_3 = (TextView)findViewById(R.id.tv_3);
iv_3 = (ImageView)findViewById(R.id.iv_3); //1、数据 图片的id
liv = new ArrayList<>();
final 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的介绍")); gv_1.setAdapter(imageAdapter); 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.activity_practise7_1, null);
new AlertDialog.Builder(PractiseActivity7.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.anniu01);
}
else
{
myClass.setImg(R.drawable.anniu01);
myClass.setContent(string2);
}
}
else if (string1.equals(b))
{
if (string2.length() ==0)
{
myClass.setImg(R.drawable.anniu02);
}
else
{
myClass.setImg(R.drawable.anniu02);
myClass.setContent(string2);
}
}
else if (string1.equals(c))
{
if (string2.length() ==0)
{
myClass.setImg(R.drawable.anniu04);
}
else
{
myClass.setImg(R.drawable.anniu04);
myClass.setContent(string2);
}
}
else if (string1.equals(d))
{
if (string2.length() ==0)
{
myClass.setImg(R.drawable.anniu05);
}
else
{
myClass.setImg(R.drawable.anniu05);
myClass.setContent(string2);
}
}
else
{
Toast.makeText(PractiseActivity7.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) { //1.删除数据
//从集合里删除长按的数据
liv.remove(position);
//2.刷新视图,看到效果
//通知适配器,数据源改变
imageAdapter.notifyDataSetChanged();
Toast.makeText(PractiseActivity7.this, "删除了记录索引 = " + position, Toast.LENGTH_SHORT).show();
return true;//事件已经被消费,不要再处理了
}
});
}
public void bt_tj_onClick(View v)
{
final View view=View.inflate(PractiseActivity7.this, R.layout.activity_practise7_1, null);
new AlertDialog.Builder(PractiseActivity7.this)
.setTitle("添加的内容")
.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.anniu01,string2));
}
else if (string1.equals(b))
{
liv.add(new MyClass(R.drawable.anniu02,string2));
}
else if (string1.equals(c))
{
liv.add(new MyClass(R.drawable.anniu04,string2));
}
else if (string1.equals(d))
{
liv.add(new MyClass(R.drawable.anniu05,string2));
}
else
{
Toast.makeText(PractiseActivity7.this, "请从a,b,c,d中选择",
Toast.LENGTH_SHORT).show();
}
imageAdapter.notifyDataSetChanged();
}
})
.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(PractiseActivity7.this, R.layout.gridview_layout, null);
}
//3.适配
//转换
ImageView imageView = (ImageView)convertView.findViewById(R.id.iv_3);
imageView.setImageResource(myClass.getImg()); TextView textView = (TextView)convertView.findViewById(R.id.tv_3);
textView.setText(myClass.getContent());
return convertView;
}
} }











Android——ListView相关作业(修改版)的更多相关文章
- Android ListView相关 头和尾 headView footerView
ListView还可以添加头和尾部,而这头和尾就是View对象, 可以使用listView.addHeadView(view)方法和listView.addFootView(view)方法分别添加头和 ...
- Android ListView相关 fastScrollEnabled
1.android:fastScrollEnabled="true" 当数据量比较多的时候,右侧会出现一个可以拉动的滚动条,这样可以很快的拉动,如图:
- Java第六次作业修改版
import java.util.ArrayList; import java.util.Collections; import java.util.Random; public class Draw ...
- Android 仿美团网,大众点评购买框悬浮效果之修改版
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17761431),请尊重他人的辛勤劳动成果,谢谢! 我之前写 ...
- Android ListView的item背景色设置以及item点击无响应等相关问题
Android ListView的item背景色设置以及item点击无响应等相关问题 在Android开发中,listview控件是非常常用的控件,在大多数情况下,大家都会改掉listview的ite ...
- 【腾讯Bugly干货分享】Android ListView与RecyclerView对比浅析--缓存机制
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5811d3e3ab10c62013697408 作者:黄宁源 一,背景 Recy ...
- Android ListView 常用技巧
Android ListView 常用技巧 Android TextView 常用技巧 1.使用ViewHolder提高效率 ViewHolder模式充分利用了ListView的视图缓存机制,避免了每 ...
- 转载:Eclipse+Spket插件+ExtJs4修改版提供代码提示功能[图]
转载:Eclipse+Spket插件+ExtJs4修改版提供代码提示功能[图] ExtJs是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架.功能丰富,无人能出其右.无论是界面 ...
- Indy 10.5.8 for Delphi and Lazarus 修改版(2011)
Indy 10.5.8 for Delphi and Lazarus 修改版(2011) Internet Direct(Indy)是一组开放源代码的Internet组件,涵盖了几乎所有流行的I ...
随机推荐
- android shape详解
shape--> shape属性: rectangle: 矩形,默认的形状,可以画出直角矩形.圆角矩形.弧形等 solid: 设置形状填充的颜色,只有android:color一个属性 andr ...
- 最新的goldengate monitor 12.1.3已经发布
Oracle GoldenGate管理包针对OGG提供企业级的监控和管理,包含有如下模块: Oracle Enterprise Manager Plug-in. 利用OEM框架查看.管理和预警OGG ...
- MongoDB C#驱动中Query几个方法 (转)
Query.All("name", "a", "b");//通过多个元素来匹配数组 Query.And(Query.EQ("nam ...
- 获取hadoop的源码和通过eclipse关联hadoop的源码
一.获取hadoop的源码 首先通过官网下载hadoop-2.5.2-src.tar.gz的软件包,下载好之后解压发现出现了一些错误,无法解压缩, 因此有部分源码我们无法解压 ,因此在这里我讲述一下如 ...
- 学习js之类的使用
<script language="javascript">function Person(){ }Person.prototype={ name:null ...
- 分析一个嵌入payload的恶意.lnk文件
原文:https://isc.sans.edu/diary/Analyzis+of+a+Malicious+.lnk+File+with+an+Embedded+Payload/20763 We re ...
- jsunit测试
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/ba ...
- pyMagic:用python控制的Geek入门神器
大学四年快要结束了,这几年也学习了一点新的姿势.最近一直在跟国外的micropython项目,这个项目是由剑桥大学的理论物理学家(theoretical physicist)Damien George ...
- Linux内存管理之地址映射
写在前面:由于地址映射涉及到各种寄存器的设置访问,Linux对于不同体系结构处理器的地址映射采用不同的方法,例如对于i386及后来的32位的Intel的处理器在页式映射时采用的是2级页表映射,而对于I ...
- BZOJ 3181 BROJ
像我这种SB还是早点退役. #include<iostream> #include<cstdio> #include<cstring> #include<al ...