Ich weiß, dass, wenn Sie den Fokus auf jede "fokussierbare" Objekt innerhalb einer ListView es deaktiviert die Fähigkeit, Fokus auf die ListView selbst. Ich habe ein EditText und ein paar Schaltflächen innerhalb meiner ListView-Element, aber ich möchte auch in der Lage sein, ein ContextMenu mit der ListView zu verwenden, so dass ich in der Lage sein muss, den Fokus zu halten. Gibt es eine Möglichkeit, zu überschreiben, so dass sowohl meine ListView und EditText-Feld den Fokus erhalten können? Ich nehme an, wenn es möglich ist, würde es innerhalb der benutzerdefinierten Adapter getan werden. Ich verwende einen SimpleCursorAdapter und verwalte meine Schaltflächenklicks innerhalb der NewView-Methode. Mein Code ist unten:
public class GrainListAdapter extends SimpleCursorAdapter {
private Button upButton;
public GrainListAdapter(Context context, int layout, Cursor c, String[] from, int[] to) {
super(context, layout, c, from, to);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
int nameColumn = cursor.getColumnIndex("name");
String getName = cursor.getString(nameColumn);
TextView name = (TextView)view.findViewById(R.id.GrainName);
name.setText(getName);
int originColumn = cursor.getColumnIndex("origin");
String getOrigin = cursor.getString(originColumn);
TextView origin = (TextView)view.findViewById(R.id.GrainOrigin);
origin.setText(getOrigin);
int lbsColumn = cursor.getColumnIndex("lbs");
String getLbs = cursor.getString(lbsColumn);
EditText lbs = (EditText)view.findViewById(R.id.GrainLbs);
lbs.setText(getLbs);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = View.inflate(context, R.layout.grain_list_item, null);
upButton = (Button)view.findViewById(R.id.UpLbsButton);
upButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Log.i("Grain Adapter Action", "Button CLICKED!!!");
}
});
return view;
}
0 Stimmen
Das Problem ist das Layout. Ich hoffe, Sie haben etwas Platz in der Zeile für die Fokussierung. Sie können onTouch oder on Click für die Ansicht versuchen, aber ich bezweifle, dass es kaum eine Hilfe sein wird.