2016-03-31 7 views
0

Я создаю приложение CMS, и я хочу удалить элемент, для этого мне нужен идентификатор, который я скрыл в элементе listview. Когда я держу элемент ListView он всплывает с удаления кнопки, которые я нажимаю, что приносит мне этот кусок кода:Получить значение элемента списка (определенное текстовое представление) при удалении

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); 
    switch(item.getItemId()) { 
     case R.id.delete: 

      new HttpDelete("http://test.soundwave.drieo.nl/api/content/"+ text + apikey); 
      return true; 
     default: 
      return super.onContextItemSelected(item); 
    } 
} 

Пользовательские списке следует:

My custom listview

При фиксации щелчок на этот элемент появляется, когда он вызывает код. (Verwijderen == удалить) When hold clicking on an item this appears wich calls the code.

Пользовательские строки XML для пользовательского адаптера:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="?android:attr/listPreferredItemHeight" 
android:padding="6dip"> 

<ImageView 
    android:id="@+id/icon" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginEnd="6dip" 
    android:contentDescription="@string/TODO"/> 

<TextView 
    android:id="@+id/secondLine" 
    android:layout_width="fill_parent" 
    android:layout_height="26dip" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentEnd="true" 
    android:layout_toEndOf="@id/icon" 
    android:ellipsize="marquee" 
    android:singleLine="true" 
    android:text="@string/description" 
    android:textSize="12sp" 
    android:visibility="visible"/> 

<TextView 
    android:id="@+id/firstLine" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@id/secondLine" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentTop="true" 
    android:layout_alignWithParentIfMissing="true" 
    android:layout_toEndOf="@id/icon" 
    android:gravity="center_vertical" 
    android:text="@string/Example" 
    android:textSize="16sp" /> 

<TextView 
    android:id="@+id/tbid" 
    android:layout_width="fill_parent" 
    android:layout_height="26dip" 
    android:ellipsize="marquee" 
    android:singleLine="true" 
    android:text="@string/ID" 
    android:textSize="12sp" 
    android:layout_alignTop="@+id/secondLine" 
    android:layout_toEndOf="@+id/icon" 
    android:layout_marginStart="68dp" 
    android:visibility="invisible"/> 

</RelativeLayout> 
+1

Так что это вопрос? Что вам нужно, пожалуйста, уточните? –

+0

См. Http://stackoverflow.com/questions/14328596/retrieving-text-from-a-listview-item-with-oncontextitemselected – Vijay

+0

@ Vijay Я пробовал эту страницу, но не понял/не смог ее заставить работать. –

ответ

0

вам нужно, чтобы получить выбранную позицию элемента (от ListView)

public boolean onContextItemSelected(MenuItem item) { 
    //...codes 
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 
    int index = info.position; 
    //... other codes 
} 

теперь используют index, чтобы получить пункт из набора данных ex, предположим, что набор данных ArrayList или Array по названию myItems:

int itemId = myItems.get(index).getId(); 
//call API using itemId as parameter 
1

Попробуйте

public boolean onContextItemSelected(MenuItem item){ 
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); 

    switch(item.getItemId()) { 
    case R.id.delete:  
Toast.makeText(MainActivity.this, ((TextView) info.targetView.findViewById(R.id.tbid)).getText().toString(),Toast.LENGTH_SHORT).show(); 

    return true; 
    default: 
     return super.onContextItemSelected(item); 
    } 
} 
Смежные вопросы