首页 > 编程知识 正文

Android ListView 动态添加及删除Item内容,vue动态添加组件和删除

时间:2023-05-03 16:51:08 阅读:212805 作者:1516

一、前言

下面代码简单的展示了动态添加、删除ListView里面的Item内容,不过是在OnItemClickListener里面的onItemClick中实现的,代码详情如下展示。

二、代码

简单的布局文件

<?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" tools:context=".MainActivity"> <ListView android:id="@+id/listview_test" android:layout_width="match_parent" android:layout_height="match_parent"/></LinearLayout>

Java代码部分

package com.example.listview;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class MainActivity extends AppCompatActivity { private static final String LOG_TAG = "MainActivity"; private static final String[] mListData = {"太阳", "水星", "金星", "地球", "火星", "木星", "土星", "天王星", "海王星", "谷神星", "冥王星", "鸟神星", "妊神星", "阋神星"}; private ListView mListView = null; private ArrayAdapter<String> mAdapter = null; private List mList = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init() { /* 注意: 一定要将String[]转成List类型,否则不能动态增加和删除Item */ mList = new ArrayList<>(Arrays.asList(mListData)); /* 创建适配器实例 */ mAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, mList); /* 获取ListView布局 */ mListView = findViewById(R.id.listview_test); /* Sets the data behind this ListView */ mListView.setAdapter(mAdapter); /* 设置监听 */ mListView.setOnItemClickListener(new ItemSelectedListener()); } private class ItemSelectedListener implements AdapterView.OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { /* 获取Item内容 */ String itemStr = mAdapter.getItem(position); Log.d(LOG_TAG, "onItemClick, Item: " + itemStr); /* 移除Item */ mAdapter.remove(itemStr); /* 新添加Item */ mAdapter.add("New Item: " + itemStr); } }} 三、注意事项

一定要将String[]转成List类型,否则不能动态增加和删除Item。 代码片段: mList = new ArrayList<>(Arrays.asList(mListData));

ArrayAdapter常见的使用方法

mAdapter.clear(); // 清空整个Item mAdapter.remove(String obj); // 移除名字为obj的Item mAdapter.add(String obj); // 添加名字为obj的Item mAdapter.getItem(int postion); // 根据位置获取Item的名称

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。