Я сделал учебник по Android-чату.Вместо использования OnClickListeners в основной активности, я хочу использовать OnClickListeners в другом классе (MyCursorAdapter.class).
Я думаю, это очень простая проблема Java.Но я не знаю, как это реализовать (как я могу использовать mHandler из другого занятия в моем классе).
Кто-нибудь может мне помочь?
Приветствия Феликса
Источник в MainActivity.class (работает хорошо)
public class MainActivity extends ListActivity {
private BluetoothService mChatService = null;
...
private void setupChat() {
mButton1 = (Button) findViewById(R.id.button1);
mButton1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
byte[] out = {32};
mChatService.write(out);
mChatService = new BluetoothService(this, mHandler);
}
});
}
Источник В MyCursorAdapter.class (здесь я хочу реализовать ту же функцию)
public class MyCursorAdapter extends ResourceCursorAdapter implements OnClickListener {
...
private class OffItemClickListener implements OnClickListener {
private int position;
public OffItemClickListener(int position) {
super();
this.position = position;
}
@Override
public void onClick(View v) {
mCursor.moveToPosition(position);
// byte[] out = {32};
// MainAcitivity.talkChat(out);
// error: "non-static variable this cannot be referenced from a static context"
// Here i want to the the same like in the MainActivity class.
// But how can I connect to the mHandler?
}
}
}
Комментарий:
ЭкземплярMyCursorAdapter в MainActivity
private void fillData() {
Cursor notesCursor = mDbHelper.fetchAllNotes();
startManagingCursor(notesCursor);
adapter = new MyCursorAdapter(this, notesCursor);
setListAdapter(adapter);
}
Комментарий комментария:
Или как я могу вызвать этот метод MainActivity из MyCursorAdapter?:
public void talkChat(byte[] out) {
mChatService.write(out);
mChatService = new BluetoothService(this, mHandler);
}