android - 从 ListView android中删除点击的项目

标签 android

public class ListCategorieActivity extends Activity implements AdapterView.OnItemClickListener {
public static String RISULTATO = "RISULTATO";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_categorie);
    ListView listview = (ListView) findViewById(R.id.listView1);
    listview.setOnItemClickListener(ListCategorieActivity.this);
}

public void onItemClick(AdapterView<?> l, View v, int position, long id) {
    Bundle bundle = new Bundle();
    Intent mIntent = new Intent();
    String[] some_array = getResources().getStringArray(R.array.sections);
    bundle.putString(RISULTATO,some_array[position]);
    mIntent.putExtras(bundle);
    setResult(RESULT_OK, mIntent);
    finish();
}

Activity ListCategorieActivity 显示可点击的项目列表。我的任务是在单击项目时从 ListView 中消除(删除)该项目。我如何使用此代码完成此任务?

activity_list_categorie.xml:

<RelativeLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.utente.myapplication.ListCategorieActivity">

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:entries="@array/sections" >
</ListView>

数组.xml:

<resources>
<string-array name="sections">
    <item >OG 1</item>
    <item >OG 2</item>
    <item >OG 3</item>
    <item >OG 4</item>
    <item >OG 5</item>
    <item >OG 6</item>
    <item >OG 7</item>
    <item >OG 8</item>
    <item >OG 9</item>
    <item >OG 10</item>
    <item >OG 11</item>
    <item >OG 12</item>
    <item >OG 13</item>
    <item >OS 1</item>
    <item >OS 2-A</item>
    <item >OS 2-B</item>
    <item >OS 3</item>
    <item >OS 4</item>
    <item >OS 5</item>
    <item >OS 6</item>
    <item >OS 7</item>
    <item >OS 8</item>
    <item >OS 9</item>
    <item >OS 10</item>
    <item >OS 11</item>
    <item >OS 12-A</item>
    <item >OS 12-B</item>
    <item >OS 13</item>
    <item >OS 14</item>
    <item >OS 15</item>
    <item >OS 16</item>
    <item >OS 17</item>
    <item >OS 18-A</item>
    <item >OS 18-B</item>
    <item >OS 19</item>
    <item >OS 20-A</item>
    <item >OS 20-B</item>
    <item >OS 21</item>
    <item >OS 22</item>
    <item >OS 23</item>
    <item >OS 24</item>
    <item >OS 25</item>
    <item >OS 26</item>
    <item >OS 27</item>
    <item >OS 28</item>
    <item >OS 29</item>
    <item >OS 30</item>
    <item >OS 31</item>
    <item >OS 32</item>
    <item >OS 33</item>
    <item >OS 34</item>
    <item >OS 35</item>
</string-array>

我想我没有使用适配器。这是正确的吗?

最佳答案

只需添加 listview.getAdapter.remove(position);在 OnItemClick 方法中。不过,我想您正在使用 ArrayAdapter。

编辑

恐怕我的解释很草率。 OnItemClick 方法有4个参数: AdapterView l 是被观察子项的ListView, int position 是子项在ListView中的位置;如果(且仅当)列表适配器是 ArrayAdapter 对象,则 remove(Object item) 方法可用并且可用于删除列表项;为了获得正确的对象,必须调用

对象项 = ((ArrayAdapter)l.getAdapter()).getItem(position);

获取要删除的对象;然后, ((ArrayAdapter)l.getAdapter()).remove(item);可以调用以删除选定的对象。

关于android - 从 ListView android中删除点击的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32295051/

相关文章:

android - Android API级-gradle编译-它将运行吗?

java - 在 Android Studio (Java) 中将 ""替换为 _

android - 如何在opengl android上暂停onDrawFrame

java - 如何知道文本转语音是否正在进行?

java - 您可以使用 java.swing 和 javafx 进行 android 开发吗?

android - 仅使用 CSS 在移动设备上水平和垂直居中显示 div

.net - 如何从 android 调用 .NET Web 服务?

android - 如何正确地使 fragment 旋转

android - 单击通知后阻止新的 Activity 实例

java - 如何在android中制作离散的搜索/进度条?