Android Gridview-Steuerelement und Schaltfläche OnItemclick
Hier ist mein buttonAdapter Klasse, dass ich denke richtig ist:
package com.example.test;
import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
public class ButtonAdapter extends BaseAdapter {
private Context mContext;
public String [] fName = { "File 1", "File 2", "Roflcopters"};
//Gets the context so it can be used later
public ButtonAdapter(Context c) { mContext = c; }
//Total number of things contained within the adapter
public int getCount () { return 8; }
//Require for structure, not really used in my code.
public Object getItem (int position) { return null; }
//Require for structure, not really used in my code. Can be used to get the id of an item in the adapter for manual control.
public long getItemId (int position) { return position; }
public View getView (int position, View convertView, ViewGroup parent){
Button btn;
if (convertView == null) { //if it's not recycled, initialize some attributes
btn = new Button (mContext);
btn.setLayoutParams (new GridView.LayoutParams (190, 190));
btn.setPadding (1, 1, 1, 1);
} else {
btn = (Button) convertView;
}
//btn.setText(filesnames[position]);
//filenames is an array of strings
//btn.setTextColor (Color.WHITE);
//btn.setBackgroundResource (R.drawable.sample_2);
//btn.setBackgroundColor (Color.BLACK);
btn.setHighlightColor(Color.GREEN);
btn.setId (position);
return btn;
}
}
Hier ist mein Zuhause Klasse. Ich kann nicht Holen Sie sich die onItemClick zu erarbeiten. Was mache ich hier falsch:
package com.example.test;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.Toast;
public class home extends Activity implements OnItemClickListener {
public final static String EXTRA_MESSAGE1 = "com.example.text.MESSAGE";
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView (R.layout.activity_home);
GridView gridview = (GridView) findViewById (R.id.gridview);
gridview.setAdapter (new ButtonAdapter (this));
/*gridview.setOnItemClickListener (new OnItemClickListener () {
public void onItemClick (AdapterView <?> parent, View v, int position, long id) {
Toast.makeText (home.this, "" + position, Toast.LENGTH_LONG).show ();
Intent intent = new Intent (this, alarm.class);
String message = "Position:" + position;
intent.putExtra(EXTRA_MESSAGE1, message);
startActivity (intent);
}
});
* */
}
@Override
public void onItemClick (AdapterView <?> parent, View v, int position, long id) {
Intent intent = new Intent (this, alarm.class);
String message = "Position:" + position;
intent.putExtra(EXTRA_MESSAGE1, message);
startActivity (intent);
}
}
Den onItemClick nicht funktioniert und auch nicht das kommentierte 'setOnItemClickListener', wenn es nicht auskommentiert und "onItemClick" ist kommentiert. Was mache ich falsch?
Können Sie mir sagen, wie Ihr ui aussieht oder was Sie versuchen zu erreichen
InformationsquelleAutor user1594295 | 2012-08-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn
GridView, ListView
haben, klicken Sie in der Lage Steuerelemente wie BUtton, dannonItemClick
wird nicht ausgelöst.Sie implementieren müssen, um
Button Click listener
in IhremgetView
Methode des Adapters.wie
die
argument
es nicht akzeptieren?position
machen esfinal
Ich bin versucht zu löschen Elemente aus dem gridview wird nun. BaseAdapter.remove (position) nicht funktioniert.
InformationsquelleAutor Mohsin Naeem
Können Sie fügen Sie diese Zeile in der übergeordneten layout des GridView-Elemente:
Dann
onItemClickListener.onItemClick()
wird nicht ausgelöst, wenn Sie Tippen Sie auf Untersichten, die OnClickListener definiert wurde, für Sie separat.InformationsquelleAutor Mansour
Ich getestet habe, die Set-Taste.onClickListener() (API 15) lösen nicht das problem.
Also das GridView-Steuerelements wird nicht ausgelöst onItemClick wenn es enthält anklickbar Ansichten.
Können Sie die Bildansicht verwenden Sie stattdessen die Schaltfläche.
InformationsquelleAutor herbertD
ich habe das gleiche problem, wenn ich versuche zu implementieren
onitemclick
aufgridview
wo gefüllt mit Knopf. Da ist der button zu stehlen, im Mittelpunkt jeder Raum aufgridview
, müssen Sie den überhöhten Tasteandroid:focusable="false"
. jedoch der button ist unter fast gesamte Fläche in einem raster, so dass Sie haben, klicken Sie auf die Kante der Taste, um die trigger -onitemclick
call-back. ich schlage vor, Sie setzen könnenonclick
oder verwenden Sie die Bild-und designe es wie eine Schaltfläche.InformationsquelleAutor user3387321