У меня есть супер приложение TestUI.У него есть вид сетки с кнопками в них.
Я хочу, чтобы слово нажатия кнопки было передано обратно в основное действие, чтобы оно могло обновлять свое состояние.
К сожалению, кнопки крадут щелчки.Так что типичное:
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(TestUI.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
Не вызывается.
Вместо этого в определении адаптера:
public View getView(int position, View convertView, ViewGroup parent) {
Button gridItem;
if (convertView == null) { // if it's not recycled, initialize some attributes
gridItem = new Button(mContext);
} else {
gridItem = (Button) convertView;
}
gridItem.setText("button " + String.valueOf(position));
gridItem.setClickable(true);
gridItem.setFocusable(false);
gridItem.setOnClickListener(new MyOnClickListener(position, mContext));
return gridItem;
, который поддерживается классом MyOnClickListener, который реализует OnClickListenerинтерфейс.Однако, если я делаю это таким образом, мне все равно нужен обратный вызов к основному действию, так или иначе, он должен знать, что что-то было сделано, поскольку он контролирует состояние программы.
Так, каков наилучший способ обновить "root «состояние / деятельность» от нажатия кнопки?
Я знаю, что это основной вопрос ОО, но я в основном пишу на ASM и C, так что, честно говоря, просто не знаю.