Не удается разрешить метод 'findViewById(int)' во фрагменте
Я пытаюсь внедрить кнопку во фрагмент, чтобы использовать soundPool для воспроизведения звука с помощью кнопки. В данный момент playSound1 появляется как никогда ранее используемый, и я попытался реализовать метод onClick, но сейчас он говорит, что не может разрешить метод. Как связать soundPool с кнопкой во фрагменте? это файл.java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Clubb1 = new SoundPool(10, AudioManager.STREAM_MUSIC, 1);
clubb1Id = Clubb1.load(getActivity(), R.raw.clubb1, 1);
// TODO Auto-generated method stub
return inflater.inflate(R.layout.fragment_one_layout, container, false);
Button buttonA = (Button) findViewById(R.id.buttonA);
buttonA.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
}
public void playSound1()
{Clubb1.play(clubb1Id,1,1,1,0,1);}
});
2 ответа
Измените свой метод на:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Clubb1 = new SoundPool(10, AudioManager.STREAM_MUSIC, 1);
clubb1Id = Clubb1.load(getActivity(), R.raw.clubb1, 1);
View rootView = inflater.inflate(R.layout.fragment_one_layout, container, false);
Button buttonA = (Button) rootView.findViewById(R.id.buttonA);
buttonA.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Clubb1.play(clubb1Id, 1, 1, 1, 0, 1);
}
});
return veiw;
}
Вы сделали много ошибок здесь. Так что я не уверен, что мой подход поможет вам в достаточной степени. Запишите результат вашей программы в комментарий, и мы попробуем больше.
В вашем коде несколько ошибок.
Вы возвращаете значение на более ранний срок, код за пределами вашего оператора возврата не выполняется
Вы надуваете представление, но все ваши внутренние элементы, например, ваша кнопка, находятся в этом представлении, поэтому вам нужно найти это представление по id в этом представлении.
Я исправил это:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_one_layout, container, false);
Clubb1 = new SoundPool(10, AudioManager.STREAM_MUSIC, 1);
clubb1Id = Clubb1.load(getActivity(), R.raw.clubb1, 1);
Button buttonA = (Button) root.findViewById(R.id.buttonA);
buttonA.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
}
public void playSound1()
{Clubb1.play(clubb1Id,1,1,1,0,1);}
});
return root;
}