Привет, это мой первый вопрос в стеке.
Я создаю динамическую сетку этого урока
http://www.stealthcopter.com/blog/2010/09/android-creating-a-custom-adapter-for-gridview-buttonadapter/comment-page-1/
Теперь это работает довольно хорошо. Мой макет состоит из gridView, и под этим gridView у меня есть TextView.
Проблема в том, что я хочу изменить TextView для отображения различной информации по каждому идентификатору при изменении фокуса (на элементах сетки). Я пытался использовать OnFocusChangeListener внутри ButtonAdapter, но при попытке получить ссылку на textView он говорит, что findViewById не реализован.
Интересно, как сделать ссылку в моей основной деятельности, которая позволяет мне обрабатывать мои элементы динамической сетки.
У меня есть следующее в onCreate ();
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ButtonAdapter(this));
Итак, я хочу обработать свои элементы сетки отсюда, есть идеи?
Спасибо
Edit:
Я пытался изменить разные вещи, но я получаю исключение NullPointerException из моего метода getView. Я не могу найти способ заставить это работать, я буду признателен за любую помощь, ребята, это мой код:
public View getView(int position, View convertView, ViewGroup parent) {
final Button btn;
if (convertView == null) {
// if it's not recycled, initialize some attributes
btn = new Button(mContext);
btn.setLayoutParams(new GridView.LayoutParams(100, 55));
btn.setPadding(8, 8, 8, 8);
} else {
btn = (Button) convertView;
}
btn.setText(filenames[position]);
// filenames is an array of strings
btn.setTextColor(Color.WHITE);
btn.setId(position);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
TextView vt = (TextView) btn.findViewById(R.id.textView1);
vt.setText("Button Pressed");
}
});
Спасибо.