安卓–ListView

实验目的:

学习使用ListView

实验要求:

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

 

技术分享图片
技术分享图片

 1 package com.flyuz.app3; 2  3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 import android.view.View; 6 import android.view.MenuItem ; 7 import android.widget.Button; 8 import android.widget.ListView; 9 import android.widget.ArrayAdapter;10 import android.widget.EditText;11 import android.widget.PopupMenu;12 import android.widget.AdapterView;13 import java.util.List;14 import java.util.ArrayList;15 16 public class MainActivity extends AppCompatActivity {17 private Button bt_add;18 private ListView lv;19 20  @Override21 protected void onCreate(Bundle savedInstanceState) {22 super.onCreate(savedInstanceState);23  setContentView(R.layout.activity_main);24  init();25  }26 27 private void init() {28 bt_add = (Button) findViewById(R.id.bt_add);29 lv = (ListView) findViewById(R.id.lv);30 List<String> list = new ArrayList<String>();31 list.add("班级" + " " + "学号" + " " + "姓名");32 list.add("se1" + " " + "2016012884" + " " + "张三");33 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);34  lv.setAdapter(adapter);35 36 //设置事件37 bt_add.setOnClickListener(new View.OnClickListener() {38 public void onClick(View v) {39 EditText et_class = (EditText) findViewById(R.id.et_class);40 EditText et_number = (EditText) findViewById(R.id.et_number);41 EditText et_name = (EditText) findViewById(R.id.et_name);42 String str_class = et_class.getText().toString();43 String str_number = et_number.getText().toString();44 String str_name = et_name.getText().toString();45 46 ArrayAdapter add_adp = (ArrayAdapter) lv.getAdapter();47 add_adp.add(str_class + " " + str_number + " " + str_name);48  }49  });50 lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {51  @Override52 public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {53 if (id > 0) {54 PopupMenu popup = new PopupMenu(MainActivity.this, view);55  popup.getMenuInflater().inflate(R.menu.menu, popup.getMenu());56  popup.show();57 popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {58  @Override59 public boolean onMenuItemClick(MenuItem item) {60 switch (item.getItemId()) {61 case R.id.menu_del:62 ArrayAdapter temp_adp = (ArrayAdapter) lv.getAdapter();63  temp_adp.remove(temp_adp.getItem(position));64 return true;65 default:66 return false;67  }68  }69  });70  }71 return true;72  }73  });74  }75 }

MainActivity

技术分享图片
技术分享图片

 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:orientation="vertical" 8 tools:context="com.flyuz.app3.MainActivity"> 9 10 <LinearLayout11 android:layout_width="match_parent"12 android:layout_height="200dp"13 android:gravity="center"14 android:orientation="vertical">15 16 <LinearLayout17 android:layout_width="match_parent"18 android:layout_height="50dp"19 android:gravity="center"20 android:orientation="horizontal">21 22 <TextView23 android:layout_width="50dp"24 android:layout_height="40dp"25 android:gravity="center"26 android:text="班级:" />27 28 <EditText29 android:id="@+id/et_class"30 android:layout_width="150dp"31 android:layout_height="40dp" />32 </LinearLayout>33 34 <LinearLayout35 android:layout_width="match_parent"36 android:layout_height="50dp"37 android:gravity="center"38 android:orientation="horizontal">39 40 <TextView41 android:layout_width="50dp"42 android:layout_height="40dp"43 android:gravity="center"44 android:text="学号:" />45 46 <EditText47 android:id="@+id/et_number"48 android:layout_width="150dp"49 android:layout_height="40dp" />50 </LinearLayout>51 52 <LinearLayout53 android:layout_width="match_parent"54 android:layout_height="50dp"55 android:gravity="center"56 android:orientation="horizontal">57 58 <TextView59 android:layout_width="50dp"60 android:layout_height="40dp"61 android:gravity="center"62 android:text="姓名:" />63 64 <EditText65 android:id="@+id/et_name"66 android:layout_width="150dp"67 android:layout_height="40dp" />68 </LinearLayout>69 70 <Button71 android:id="@+id/bt_add"72 android:layout_width="180dp"73 android:layout_height="40dp"74 android:text="添加" />75 76 </LinearLayout>77 <ListView78 android:id="@+id/lv"79 android:layout_width="match_parent"80 android:layout_height="wrap_content"81 android:longClickable="true" />82 83 </LinearLayout>

layout\activity_main.xml

技术分享图片
技术分享图片

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

menu\menu.xml

 

相关文章