0
Я хочу вызвать метод showMessage(), который определен в моей основной деятельности из класса TestButton, которые расширяют Button. Код, который я использую ниже, выдает исключение нулевого указателя. Я не уверен, как это решить. Не могли бы вы мне помочь?Как вызвать метод MainActivity классом, который расширяет Button
MainActivity
public class MainActivity extends MultiTouchActivity {
TestButton btn;
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (TestButton)findViewById(R.id.button4);
btn.setOnTouchListener(this);
}
public void showMessage()
{
Toast.makeText(this, "hello", Toast.LENGTH_SHORT).show();
}
TestButton класс
public class TestButton extends Button {
MainActivity m;
public TestButton(final Context context, final AttributeSet attrs)
{
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
public boolean onTouchEvent(final MotionEvent event)
{
if (event.getAction() == MotionEvent.ACTION_UP)
{
m = new MultitouchtestActivity();
m.showMessage();
}
return super.onTouchEvent(event);
}
}
EDIT Спасибо @ ΦXoce 웃 Пepeúpa это решить мою проблему, но я сделал немного изменения.
btn.setCallback(this); from btn.setCallback();
и
public void setCallback(final ICallback iCallback)
Можете ли вы рассказать о том, как ваш код «не работает»? Что вы ожидали, и что на самом деле произошло? Если вы получили исключение/ошибку, опубликуйте строку, в которой она произошла, и сведения об исключении/ошибке. Пожалуйста, отредактируйте эти данные или мы не сможем помочь. –
@ Исаак вам нужно изучить многие основные андроиды, прежде чем ставить здесь вопрос. Например, почему вы создаете объект Activity, который не разрешен в android. Почему вам нужно отвечать в классе обертки? – Neo
Также вы можете исправить отступ вашего кода, добавив 4 пробела в каждую строку? Первая строка выглядит нормально, но остальное выглядит немного странно. –