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();
}
活动ListCategorieActivity显示可点击的项目列表。我的任务是在单击项目时从列表视图中删除(删除)该项目。我如何使用此代码完成此任务?
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>
array.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>
我想我没有使用适配器。这是正确的吗?
答案 0 :(得分:1)
只需添加listview.getAdapter.remove(position);在OnItemClick方法中。我想你使用的是ArrayAdapter。
修改
我担心我的解释很草率。 OnItemClick方法有4个参数:AdapterView l是ListView,其子视图被观察,int position是ListView中的子位置;如果(且仅当)列表适配器是ArrayAdapter对象,则remove(Object item)方法可用,并且可用于删除列表项;为了获得正确的对象,必须调用
Object item =((ArrayAdapter)l.getAdapter())。getItem(position);
获取要删除的对象;然后,((ArrayAdapter)l.getAdapter())。remove(item);可以调用它来删除所选对象。
答案 1 :(得分:0)
您可以将字符串资源放入Arraylist,只需使用Tkinter
方法删除列表视图中的元素。
答案 2 :(得分:0)
您有2个选项
使用ArrayAdapter的remove()方法从列表中删除项目。
Object toRemove = arrayAdapter.getItem([POSITION]);
arrayAdapter.remove(toRemove);
或者修改ArrayList并调用notifyDataSetChanged()。
arrayList.remove([index]);
arrayAdapter.notifyDataSetChanged();