I am very new to Android development and it seems to me that it is very simple, but I could not find anyone on Google with the same problem. I have a Gridview that is populated with a TextView (which has an image on top) and an ImageButton (for deleting the current item). I want to remove the element that I click on ImageButton.
Here is my main one:
public class ActivityMain extends Activity { GridView gridview; public GridAdapter mainActivityAdapter; public ArrayList<String> listService = new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listService.add("Market"); listService.add("Recherche"); listService.add("Quiz"); gridview = (GridView) findViewById(R.id.mainActivity_grid); mainActivityAdapter = new GridAdapter(this.getApplicationContext(), listService); gridview.setAdapter(mainActivityAdapter); }
}
And here is my adapter:
public class GridAdapter extends BaseAdapter { Context context; ArrayList<String> list = new ArrayList<String>(); GridAdapter adapter = this; public GridAdapter(Context context, ArrayList<String> list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int arg0) { return null; } @Override public long getItemId(int arg0) { return 0; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder; if(convertView==null) { convertView = LayoutInflater.from(context).inflate(R.layout.item_gridmain, null); holder = new ViewHolder(); holder.textView = (TextView) convertView.findViewById(R.id.gridMain_text); holder.close = (ImageButton) convertView.findViewById(R.id.mainActivity_delete); convertView.setTag(holder); } else{ holder = (ViewHolder) convertView.getTag(); }
The fact is that when I click on one ImageButton, the last element that was deleted is always added, and I canβt understand why and how to fix it.
Thanks.
==================== EDIT:
Here is my activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main_layout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#DDDDDD" android:orientation="vertical" > <GridView android:id="@+id/mainActivity_grid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="5sp" android:layout_marginRight="5sp" android:layout_marginTop="5sp" android:clickable="false" android:gravity="center" android:horizontalSpacing="15dp" android:numColumns="2" android:stretchMode="columnWidth" android:verticalSpacing="10dp" /> </LinearLayout>
And my item_gridmain.xml:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/gridMain_text" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" android:textAlignment="center" android:textColor="@android:color/holo_blue_dark" /> <ImageButton android:id="@+id/mainActivity_delete" style="?android:attr/borderlessButtonStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:contentDescription="@string/deleteFav" android:src="@drawable/boutoncroixfermer" /> </RelativeLayout>
source share