Comment ajouter gridview setOnItemClickListener
J'ai un GridView avec 81 boutons. Je veux ajouter clicklistener à ce gridview, mais il n'est pas disponible. J'ai ajouté le OnItemClickListener mais ça ne fonctionne pas et je ne comprends pas pourquoi. Il n'y a pas d'erreur avec le code. La seule chose qui ne fonctionne pas est le OnItemClickListener.
Mon gridview enfants qui a un bouton(gridview_members.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"
>
<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>
Mon ImageAdapter classe;
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return 81;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
@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);
return gridView;
}
}
Gridview mise en œuvre sur activity_main.xml ;
<GridView
android:id="@+id/gridview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:horizontalSpacing="5dp"
android:verticalSpacing="5dp"
android:gravity="center"
android:stretchMode="columnWidth"
android:numColumns="6" >
</GridView>
Et enfin mon MainActivity.java fichier;
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(MainActivity.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
}
}
- android:focusable="false" android:focusableInTouchMode="false" ajouter à votre Bouton et essayez encore une fois..
- Vous pouvez définir
OnClickListener
à l'intérieur de votre adaptateur personnalisé à bouton. - double possible de Android - Gridview avec Personnalisé BaseAdapter, créer onclicklistener
Vous devez vous connecter pour publier un commentaire.
Vous demandant de cliquer sur l'élément(pas sur le bouton à l'intérieur de l'élément) si besoin de changer votre enfant XML de mise en page
de
à
ou vous pouvez ajouter ClickListener à l'intérieur de l'adaptateur
GridView est cliquable pas besoin de mettre le bouton à l'intérieur GridView.
À l'ajout d'un écouteur à la grille, ajoutez le code suivant:
Et ainsi de suite, vous pouvez ajouter tous les nombres dans le cas.
Si vous souhaitez obtenir de texte qui ont cliqué élément, vous pouvez utiliser cette
Je suggère que vous pour ajouter un écouteur de clics dans la méthode getview plutôt que d'ajouter de l'activité de la classe.
essayez ce code
Dans votre CustomAdapter en
}