網站首頁 編程語言 正文
實驗目的:
- 1.學習使用
ListView
及其事件響應方法。 - 2.閱讀
sdk/doc/index
脫機文檔或者在Android developer
開發者網站上,學習使用彈出菜單PopupMenu
及其事件響應方法。
實驗要求:
- 1.實現一個列表,其中顯示班級學號姓名,提供添加功能
- 2.對添加的選項,通過長按某項,調用彈出菜單顯示刪除功能,并刪除該選項。
package com.example.shiyan3; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.PopupMenu; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.ContextMenu; import android.view.Gravity; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { List<String> list; ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EditText t1=(EditText) findViewById(R.id.edit_1); EditText t2=(EditText) findViewById(R.id.edit_2); EditText t3=(EditText) findViewById(R.id.edit_3); ListView listView = (ListView)findViewById(R.id.listview); Button bt= (Button) findViewById(R.id.button); list = new ArrayList<String>(); list.add("班級 姓名 學號"); adapter=new ArrayAdapter<String>(this,R.layout.support_simple_spinner_dropdown_item,list); listView.setAdapter(adapter); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { list.add(t1.getText().toString()+" "+t2.getText().toString()+" "+t3.getText().toString()); adapter.notifyDataSetChanged(); } }); AdapterView.OnItemLongClickListener lclistener=new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) { popupshow(view,i); adapter.notifyDataSetChanged(); return false; } }; listView.setOnItemLongClickListener(lclistener); } public void popupshow(View v,int i){//自定義函數 PopupMenu popup=new PopupMenu(this,v); popup.setGravity(Gravity.CENTER_HORIZONTAL); MenuInflater inflater=popup.getMenuInflater(); inflater.inflate(R.menu.popupmenu,popup.getMenu()); popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { if(item.getItemId()==R.id.delete) { list.remove(i); adapter.notifyDataSetChanged(); } return false; } }); if(i!=0) popup.show();//防止把第一行給刪了 } }
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" > <TableRow android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="班級:" android:textSize="20sp" /> <EditText android:id="@+id/edit_1" android:layout_height="wrap_content" android:layout_width="500px" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textview2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="姓名:" android:textSize="20sp" /> <EditText android:id="@+id/edit_2" android:layout_width="500px" android:layout_height="wrap_content" android:text="" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textview3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="學號:" android:textSize="20sp" /> <EditText android:id="@+id/edit_3" android:layout_width="500px" android:layout_height="wrap_content" android:text="" /> </TableRow> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="350px" android:layout_marginRight="350px" android:text="添加" /> <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="wrap_content"> </ListView> </TableLayout>
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/delete" android:title="刪除"/> <item android:id="@+id/add" android:title="添加"/> </menu>
原文鏈接:https://blog.csdn.net/qq_42641977/article/details/121015028
相關推薦
- 2023-03-20 C#中如何限制TextBox控件內輸入值的范圍_C#教程
- 2022-09-07 python?正則表達式如何實現重疊匹配_python
- 2022-07-08 Python數據分析之使用matplotlib繪制折線圖、柱狀圖和柱線混合圖_python
- 2022-10-23 python如何在一個py文件中獲取另一個py文件中的值(一個或多個)_python
- 2022-06-18 Android?Recyclerview實現左滑刪除功能_Android
- 2023-11-11 微信 小程序 在電腦PC端無法加載的解決辦法。電腦微信小程序打不開是怎么回事?電腦微信小程序不能打開
- 2024-03-03 layui table合并相同的列
- 2022-06-01 詳解Python中sorted()和sort()的使用與區別_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支