How to add gridview setOnItemClickListener
If you want to get text that clicked item you can use this
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String item = ((TextView)view.findViewById(R.id.ID_OF_TEXTVIEW)).getText().toString();
Toast.makeText(showMissions.this, "" + item, Toast.LENGTH_SHORT).show();
}
});
You are requesting click on the item(not on the button inside the item) so need to change your child XML layout
from
<?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"
>
<Button
android:id="@+id/city"
android:layout_width="183dp"
android:layout_height="90dp"
android:textSize="19sp"
android:textStyle="bold"
android:text="Code\n\nCity"
android:gravity="center"
android:background="@drawable/city_btn_tablet" />
</RelativeLayout>
to
<?xml version="1.0" encoding="utf-8"?>
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/city"
android:layout_width="183dp"
android:layout_height="90dp"
android:textSize="19sp"
android:clickable="true"
android:textStyle="bold"
android:text="Code\n\nCity"
android:gravity="center"
android:background="@drawable/city_btn_tablet" />
or you can add ClickListener inside adapter
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
gridView =new View(mContext);
gridView = inflater.inflate(R.layout.gridview_members, null);
Button city = (Button) gridView.findViewById(R.id.city);
city.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast here
}});
return gridView;
}
GridView is clickable no need to put button inside GridView.
To add listener to the grid add the following code:
// Implement On Item click listener
gridView1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0:
break;
case 1:
break;
}
}
});
And so on you can add all numbers in the cases.