Похоже, что ваш FloatingActionButton не является View, вы создаете внутренний класс
private class FloatingActionButton {
public void setOnClickListener(View.OnClickListener onClickListener) {
}
}
Этого не должно быть вообще. Вы создали класс, который не расширяет View, и попытались использовать его в качестве View. Выньте этот класс и используйте FloatingActionButton из библиотеки. Это основная причина вашей ошибки.
Попробуйте изменить
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra((RecognizerIntent.EXTRA_MAX_RESULTS),1);
speechtest.startListening(intent);
}
});
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
К
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra((RecognizerIntent.EXTRA_MAX_RESULTS),1);
speechtest.startListening(intent);
}
});
Я ожидаю, что вы получите исключение NullPointerException.
Эта строка кода
setContentView(R.layout.activity_main);
Говорит; загрузите мой xml-файл Activity_main в качестве текущего макета для этого действия.
И эта строка кода
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
Говорит; В XML-файле, который я загрузил с помощью setContentView, найдите представление с идентификатором fab и приведите его к FloatingActionButton
Так как ваш код выложен, вы пытаетесь найти представление до его загрузки.