在Recycler View上调用intent



这是我的回收器适配器。我想在单击调用按钮时进行调用。我不知道该怎么办。请帮帮我我在支架上加了呼叫按钮。之后我什么都不知道了。这是我所在地区血库的申请。所以请立即帮我。

import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.firebase.ui.firestore.FirestoreRecyclerAdapter;
import com.firebase.ui.firestore.FirestoreRecyclerOptions;
import com.google.firebase.database.snapshot.Index;
import com.google.firebase.firestore.DocumentSnapshot;
public class NoteAdapter extends FirestoreRecyclerAdapter<Note, NoteAdapter.NoteHolder> {
ListActivity listActivity;
Context context;
public NoteAdapter(@NonNull FirestoreRecyclerOptions<Note> options) {
super (options);
}
@Override
protected void onBindViewHolder(@NonNull NoteHolder holder, final int position, @NonNull final Note model) {
holder.name.setText (model.getName ());
holder.place.setText (model.getPlace ());
holder.location.setText (model.getMuncipality ());
holder.blood.setText (model.getBloodgroup ());
holder.number.setText (model.getNumber ());
}
@NonNull
@Override
public NoteHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view= LayoutInflater.from (parent.getContext ()).inflate (R.layout.item_view,parent,false);
return new NoteHolder (view);
}
static class NoteHolder extends RecyclerView.ViewHolder{
ListActivity listActivity;
Context context;
TextView name;
TextView place;
TextView blood;
TextView location;
TextView number;
Button call;
public NoteHolder(@NonNull View itemView) {
super (itemView);
name=itemView.findViewById (R.id.Name);
place=itemView.findViewById (R.id.Place);
blood=itemView.findViewById (R.id.Blood_group);
location=itemView.findViewById (R.id.Muncipality);
number=itemView.findViewById (R.id.mobileNumber);
call=itemView.findViewById (R.id.call);
}
}
}

您也可以像这样直接传递数字。

Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + model.getNumber());
context.startActivity(intent);

首先,您需要将Context传递到适配器中。

Context context;
public NoteAdapter(@NonNull FirestoreRecyclerOptions<Note> options,Context ctx) {
super (options);
content = ctx
}

之后,您可以使用上下文调用Intent。

Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + Pass You TelePhone Number));
context.startActivity(intent);

您的最终代码如下所示。

public class NoteAdapter extends FirestoreRecyclerAdapter<Note, NoteAdapter.NoteHolder> {
ListActivity listActivity;
Context context;
public NoteAdapter(@NonNull FirestoreRecyclerOptions<Note> options,Context ctx) {
super (options);
content = ctx
}
@Override
protected void onBindViewHolder(@NonNull NoteHolder holder, final int position, @NonNull final Note model) {
holder.name.setText (model.getName ());
holder.place.setText (model.getPlace ());
holder.location.setText (model.getMuncipality ());
holder.blood.setText (model.getBloodgroup ());
holder.number.setText (model.getNumber ());
holder.call.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + Pass You TelePhone Number));
context.startActivity(intent);
} 
});
}
@NonNull
@Override
public NoteHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view= LayoutInflater.from (parent.getContext ()).inflate (R.layout.item_view,parent,false);
return new NoteHolder (view);
}
static class NoteHolder extends RecyclerView.ViewHolder{
ListActivity listActivity;
Context context;
TextView name;
TextView place;
TextView blood;
TextView location;
TextView number;
Button call;
public NoteHolder(@NonNull View itemView) {
super (itemView);
name=itemView.findViewById (R.id.Name);
place=itemView.findViewById (R.id.Place);
blood=itemView.findViewById (R.id.Blood_group);
location=itemView.findViewById (R.id.Muncipality);
number=itemView.findViewById (R.id.mobileNumber);
call=itemView.findViewById (R.id.call);
}
}
}

不要忘记将相关权限添加到您的清单中:

<uses-permission android:name="android.permission.CALL_PHONE" />

最新更新