Ich habe ein GridView mit 81 Schaltfläche darauf. Ich möchte clicklistener zu dieser Gridview hinzufügen, aber es ist nicht verfügbar. Ich kann nicht verstehen, dass ich OnItemClickListener hinzufüge, aber es funktioniert nicht. Es gibt keinen Fehler mit dem Code. Nur ich habe funktioniert nicht OnItemClickListener.Hinzufügen von Gridview SetOnItemClickListener
Meine gridview Kinder, die eine Schaltfläche hat (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>
Meine ImageAdapter-Klasse;
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-Implementierung auf 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>
Und schließlich meine MainActivity.java Datei;
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 verwenden: fokussierbarem = "false" android: focusableInTouchMode = "false" fügen Sie dies Ihrem Button hinzu und versuchen Sie es erneut. –
Sie können 'OnClickListener' in Ihrem benutzerdefinierten Adapter auf die Schaltfläche setzen. –
möglich Duplikat von [Android - Gridview mit Custom BaseAdapter, erstellen onclicklistener] (http://stackoverflow.com/questions/20052631/android-gridview-with-custom-baseadapter-create-onclicklistener) – saiful103a