Мне нужно называть намерение от onBindViewHolder
адаптера recycler
, при событии click от одного из видов в ViewHolder
. Я не могу сделать это напрямую.Правильный способ вызова метода активности из адаптера recycler в Android?
public void onBindViewHolder(MyAdapter.MyViewHolder viewHolder, int i) {
viewHolder.button.setonClickListener(new View.onClickListener(
@Override
onClick(View v) {
Intent i=new Intent();
i.setAction("Intent.ACTION_CALL");
i.setData(Uri.parse("tel:1234567890"));
startActivity(i);
}
));
}
Это не помогло. Он продолжал бросать ошибку. Затем я создал публичный метод в Activity с тем же кодом. Контекст проходящей активности в конструкторе адаптера. Затем вызывается метод следующим образом из события нажатия кнопки.
((MyActivity)context).makePhoneCall("1234567890");
Это сделало трюк. Но я чувствую, что должен быть лучший способ сделать это. Как я в основном из C фона, я не уверен. Таким образом, мой вопрос заключается в том, что это лучший или более правильный способ, согласно соглашениям программирования Java.
В основном 'startActivity()' метод является из 'деятельности 'класс. Таким образом, мы должны обращаться именно так. –
@NigamPatro 'startActivity()' метод из класса Context. – fRoStBiT
@fRoStBiT yup buddy, извините, его из класса Context и вы правы. –