Note that there are some explanatory texts on larger screens.

plurals
  1. POAlertDialog with ListView on BaseAdapter
    primarykey
    data
    text
    <p>I am getting the teams from an arraylist and show on a listview with their logos. It is working without problem. But I want to remove an item when I click long on a listview item with an yes - no alert dialog. Here is my codes and custom adapter.</p> <pre><code>package com.mesutemre.takimlarlistview; import java.util.ArrayList; import android.content.Context; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class TakimBaseAdapter extends BaseAdapter { Context context; private LayoutInflater inflater = null; private TextView lblAd, lblAciklama; private ImageView imgTakim; private ArrayList&lt;Takim&gt; items; public TakimBaseAdapter(Context context, ArrayList&lt;Takim&gt; items) { this.context = context; this.items = items; inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { return items.size(); } @Override public Object getItem(int position) { return items.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View vi = convertView; if (convertView == null) vi = inflater.inflate(R.layout.activity_main, null); lblAd = (TextView) vi.findViewById(R.id.textView1); lblAd.setTextColor(Color.BLUE); lblAciklama = (TextView) vi.findViewById(R.id.textViewAciklama); imgTakim = (ImageView) vi.findViewById(R.id.takimImage); lblAd.setText(items.get(position).getTakim_ad()); lblAciklama.setText(items.get(position).getTakim_aciklama()); int logoID = context.getResources().getIdentifier( items.get(position).getImage(), "drawable", context.getPackageName()); imgTakim.setImageResource(logoID); return vi; } } </code></pre> <p>And I put the items of <code>ArrayList</code> of teams in <strong>MainActivity</strong> and it is here;</p> <pre><code> public class MainActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /*final ArrayAdapter&lt;Takim&gt; adapter = new TakimAdapter(this, R.layout.activity_main, getTakimlar());*/ final BaseAdapter adapter = new TakimBaseAdapter(MainActivity.this, getTakimlar()); setListAdapter(adapter); getListView().setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long arg3) { Takim stakim = (Takim) parent.getItemAtPosition(position); Toast.makeText(getBaseContext(), "Takım : " + stakim.getTakim_ad(), Toast.LENGTH_SHORT) .show(); } }); getListView().setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView&lt;?&gt; parent, View view, final int position, long arg3) { final Takim stakim = (Takim) parent.getItemAtPosition(position); // burada AlertDialog.Builder'ın constructor'ına dikkat edin. // Listactivitymizin context'ini atıyoruz. AlertDialog.Builder builder = new AlertDialog.Builder( MainActivity.this); builder.setMessage("Bu takımı silmek istediğinizden emin misiniz?"); builder.setPositiveButton("Evet", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { getTakimlar().remove(which); adapter.notifyDataSetChanged(); } }); builder.setNegativeButton("Hayır", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { adapter.notifyDataSetChanged(); } }); builder.show(); return false; } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } // Takimlar ekleniyor private ArrayList&lt;Takim&gt; getTakimlar() { ArrayList&lt;Takim&gt; takimList = new ArrayList&lt;Takim&gt;(); takimList.add(new Takim("Galatasaray", "19", "galatasaray")); takimList.add(new Takim("Fenerbahçe", "18", "fenerbahce")); takimList.add(new Takim("Beşiktaş", "13", "bjk")); takimList.add(new Takim("Trabzonspor", "6", "trabzon")); takimList.add(new Takim("Bursaspor", "1", "bursaspor")); return takimList; } } </code></pre> <p>I am getting <code>ArrayOutofBound Exception</code> because of <code>getTakimlar().remove(which);</code>. How can I remove an item from my <code>ArrayList</code> in this situation?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload