实验目的:

学习使用ListView

实验要求:

实现一个列表,其中显示班级学号姓名,提供添加功能,如需要删去某一项,长按该项,通过弹出菜单显示删除功能。

 package com.flyuz.app3;

 import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.MenuItem ;
import android.widget.Button;
import android.widget.ListView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.PopupMenu;
import android.widget.AdapterView;
import java.util.List;
import java.util.ArrayList; public class MainActivity extends AppCompatActivity {
private Button bt_add;
private ListView lv; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
} private void init() {
bt_add = (Button) findViewById(R.id.bt_add);
lv = (ListView) findViewById(R.id.lv);
List<String> list = new ArrayList<String>();
list.add("班级" + " " + "学号" + " " + "姓名");
list.add("se1" + " " + "2016012884" + " " + "张三");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
lv.setAdapter(adapter); //设置事件
bt_add.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText et_class = (EditText) findViewById(R.id.et_class);
EditText et_number = (EditText) findViewById(R.id.et_number);
EditText et_name = (EditText) findViewById(R.id.et_name);
String str_class = et_class.getText().toString();
String str_number = et_number.getText().toString();
String str_name = et_name.getText().toString(); ArrayAdapter add_adp = (ArrayAdapter) lv.getAdapter();
add_adp.add(str_class + " " + str_number + " " + str_name);
}
});
lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
if (id > 0) {
PopupMenu popup = new PopupMenu(MainActivity.this, view);
popup.getMenuInflater().inflate(R.menu.menu, popup.getMenu());
popup.show();
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_del:
ArrayAdapter temp_adp = (ArrayAdapter) lv.getAdapter();
temp_adp.remove(temp_adp.getItem(position));
return true;
default:
return false;
}
}
});
}
return true;
}
});
}
}

MainActivity

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.flyuz.app3.MainActivity"> <LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:gravity="center"
android:orientation="vertical"> <LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:orientation="horizontal"> <TextView
android:layout_width="50dp"
android:layout_height="40dp"
android:gravity="center"
android:text="班级:" /> <EditText
android:id="@+id/et_class"
android:layout_width="150dp"
android:layout_height="40dp" />
</LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:orientation="horizontal"> <TextView
android:layout_width="50dp"
android:layout_height="40dp"
android:gravity="center"
android:text="学号:" /> <EditText
android:id="@+id/et_number"
android:layout_width="150dp"
android:layout_height="40dp" />
</LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:orientation="horizontal"> <TextView
android:layout_width="50dp"
android:layout_height="40dp"
android:gravity="center"
android:text="姓名:" /> <EditText
android:id="@+id/et_name"
android:layout_width="150dp"
android:layout_height="40dp" />
</LinearLayout> <Button
android:id="@+id/bt_add"
android:layout_width="180dp"
android:layout_height="40dp"
android:text="添加" /> </LinearLayout>
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:longClickable="true" /> </LinearLayout>

layout\activity_main.xml

 <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_del"
android:title="删除">
</item>
</menu>

menu\menu.xml

安卓--ListView的更多相关文章

  1. 安卓 listview与arrayadapter

    今天有感于群里讨论的一个问题,很简单,但是问题还真是需要仔细看一下 问题:定义了一个最简单的arrayadapter,和listview结合使用,灭个item就显示个最简单的textView,一共6个 ...

  2. 安卓ListView的性能优化

    在安卓APP中LIstView这个控件可以说基本上是个APP就会用到,但是关于ListView除了需要了解其最基本的用法外,作为一个要做出高性能APP的程序员还需了解一些关于LIstView控件性能优 ...

  3. 安卓Listview 不规则项即不同item的运行

    在安卓中,listview  的item 是一个不断被轮询调换位置的过程,这样 即 图片参考地址   http://www.cnblogs.com/mybkn/archive/2012/05/23/2 ...

  4. (BUG已修改,最优化)安卓ListView异步加载网络图片与缓存软引用图片,线程池,只加载当前屏之说明

    原文:http://blog.csdn.net/java_jh/article/details/20068915 迟点出更新的.这个还有BUG.因为软引应不给力了.2.3之后 前几天的原文有一个线程管 ...

  5. 安卓ListView操作的两种方法

    举例做一个微信的中间部分(好友消息等信息通知) 第一种:BaseAdapter() package com.example.wx; import java.util.ArrayList;import ...

  6. [安卓]ListView 与 RecyclerView的比较

    ListView与RecyclerView在在app应用非常广泛,相对于其他的view(button textview)来说比较复杂,接下来我将讲一下创建的流程以及两者的不同. 代码来自<第一行 ...

  7. 安卓ListView行详细内容展示页编写和下拉刷新实现

    ListView行详细内容展示页: 使用轻量级的Fragment实现Listview行内容简单的详细信息展示: 值得注意的是: 1. 主布局(打开它的Activity)必须是FrameLayout布局 ...

  8. 安卓Listview和Adapter数据设计

    ListView是一种用于垂直显示的列表控件,如果显示内容过多,则会自动出现垂直滚动条,每一行是一个View对象,在每一行上可以放置任何组件,Adapter适配器是数据和UI的桥梁,为数据显示提供了统 ...

  9. 安卓listView实现下拉刷新上拉加载滑动仿QQ的删除功能

    大家对这些功能都是看的多了,然后对上拉刷新和下拉加载的原理都是非常清楚的,所以实现这功能其实也就是为了让大家能够从众多的同行们来进行比较学习而已,虽然即使是这样,但是面试的时候面试官还是会问你上拉和下 ...

  10. 安卓ListView中CheckBox的使用(支持Item列表项的删除,全选,全不选)

    ListView 自身提供了 CheckBox 只需要添加一行代码 getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 但是这种实现 ...

随机推荐

  1. Azure通过Vnet Peering和用户自定义路由(UDR)实现hub-spoken连接

    Azure的Vnet Peering可以把Azure中不同的Vnet连接起来的技术.底层是通过对NVGRE的租户标签进行修改,实现了不同租户间的互通.这种技术非常类似传统网络中MPLS/VPN不同租户 ...

  2. Azure Blob存储更改缓存时间

    Azure的Blob存储可以作为Http的服务来使用.很多客户已经把Blob作为图片存储的服务,这样稍作代码的修改,解决了图片服务器带宽.性能等多种问题. 但同时问题也出现了:在传统Http的服务中很 ...

  3. jenkins学习 01 jenkins介绍

    jenkins 是一个可扩展的持续集成引擎. 使用Jenkins目的: 持续.自动地构建/测试软件项目. 监控一些定时执行的任务. jenkins拥有的特性: 易于安装,只要jenkins.war部署 ...

  4. 高效C#编码优化

    1.foreach VS for 语句 Foreach 要比for具有更好的执行效率Foreach的平均花费时间只有for的30%.通过测试结果在for和foreach都可以使用的情况下,我们推荐使用 ...

  5. python 函数相关定义

    1.为什么要使用函数? 减少代码的冗余 2.函数先定义后使用(相当于变量一样先定义后使用) 3.函数的分类: 内置函数:python解释器自带的,直接拿来用就行了 自定义函数:根据自己的需求自己定义的 ...

  6. 管理linked break-off snapshot

    1. 建立linked break-off snapshot   (1) 建立原卷 #> vxassist -g APS2_AFC_DG make vol1 4096000 #> vxpr ...

  7. C#实现有向无环图(DAG)拓扑排序

    对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在 ...

  8. JavaScript实现重置表单(reset)的方法

    转自:https://www.jb51.net/article/63305.htm <!DOCTYPE html> <html> <head> <script ...

  9. SpringMVC中使用forward和redirect进行转发和重定向以及重定向时如何传参详解

    转自:http://blog.51cto.com/983836259/1877188 2016-11-28 09:45:59   如题所示,在SpringMVC中可以使用forward和redirec ...

  10. 解决实现OnPageChangeListener()接口的方法参数出现arg0,arg1的现象

    在安卓开发中,我们经常用到ViewPager,那么既然用到ViewPager,一般都需要去实现OnPageChangeListener()接口的三个方法. 但是有时候实现的三个方法的参数都变成agr0 ...