Мне нужно передать Намерение в onClickListener
в Android ... Но немного по-другому, чем обычно.
У меня есть gridView кнопок, и при каждом первом нажатии на каждую кнопку он говорит только о том, какое действие выполняет эта кнопка (для слепых), и мне нужно, чтобы Intent было запущено, пока пользователь дважды нажимает на одну и ту же кнопку дважды.
У меня есть этот адаптер
public class BlindAdapter extends BaseAdapter implements OnClickListener{
private Context mContext;
private String[] labels;
private Button currentlyClicked;
public BlindAdapter(Context c, String[] labels) {/*Empty*/}
@Override
public int getCount() {/*Empty*/}
@Override
public Object getItem(int arg0) {/*Empty*/}
@Override
public long getItemId(int arg0) {/*Empty*/}
@Override
public View getView(int position, View convertView, ViewGroup parent) {/*Empty*/}
private void say(String text) {/*Empty*/}
@Override
public void onClick(View view) {
Button btn = (Button) view;
Log.v("id", ""+view.hashCode());
if(this.currentlyClicked == null || this.currentlyClicked.hashCode() != view.hashCode()){
if(this.currentlyClicked != null) this.currentlyClicked.setBackgroundColor(Color.LTGRAY);
this.currentlyClicked = (Button) view;
btn.setBackgroundColor(Color.GRAY);
this.say(btn.getText().toString());
} else{
this.say("Zvolena volba:" + btn.getText().toString());
btn.setBackgroundColor(Color.LTGRAY);
this.currentlyClicked = null;
}
}
//Notice I posted inly onCLick method with its body for simplicity..
И я это создаю, вот так
gridview.setAdapter(
new BlindAdapter(this.getApplicationContext(),
new String[]{"jedna", "dva", "tri", "ctyri", "pet", "šest", "osm"})
);
Строки - это действия, которые являются красными для пользователя. Так что мне нужно передать туда даже Намерение для каждой конкретной кнопки. Можно ли передать его туда как другой параметр?
Или можно как-нибудь переопределить событие onclick кнопки в моей Активности и сначала вызвать super.OnClick
, где приложение решит, будет его первый или второй щелчок, и в соответствии с возвратом я остановлю все событие onclick, или продолжу вернуться к главному событию в Activity и вызвать Intent?
Или есть лучший способ добиться всего этого? (Я думаю, что по крайней мере первая возможность, о которой я подумал, действительно странная).
EDIT
А как насчет того, чтобы сделать каждый элемент "фокусируемым" ... Это было бы гораздо более доступно (трекболы и т. Д.).
Возможно сделать gridViewItem только выделенным в первый клик (просто сфокусироваться) и кликнуть только при следующем клике .. (Это поведение, которого я пытаюсь достичь) ..