Android 如何将数据从RecyclerViewHolder传递到手机应用程序拨号器数据是firebase解析的
我从firebase数据库获取数据进行操作Android 如何将数据从RecyclerViewHolder传递到手机应用程序拨号器数据是firebase解析的,android,firebase,android-intent,firebase-realtime-database,android-recyclerview,Android,Firebase,Android Intent,Firebase Realtime Database,Android Recyclerview,我从firebase数据库获取数据进行操作 viewHolder.imageButton.setOnClickListener打开手机应用程序并显示model.getPhone()中的电话号码; 并在电话拨号器中显示,以优先选择用户是否呼叫。 当我点击imageButton,无法在android studio中获取崩溃日志时,应用程序崩溃 @Override protected void populateViewHolder(MovieViewHolder viewHo
viewHolder.imageButton.setOnClickListener
打开手机应用程序并显示model.getPhone()中的电话号码;
并在电话拨号器中显示,以优先选择用户是否呼叫。
当我点击imageButton,无法在android studio中获取崩溃日志时,应用程序崩溃
@Override
protected void populateViewHolder(MovieViewHolder viewHolder, final Movie model, final int position) {
if (tvNoMovies.getVisibility() == View.VISIBLE) {
tvNoMovies.setVisibility(View.GONE);
}
viewHolder.tvMovieName.setText(model.getMovieName());
viewHolder.address.setText(model.getAddress());
viewHolder.phone.setText(model.getPhone());
viewHolder.lit.setText(model.getLit());
viewHolder.lon.setText(model.getLon());
Picasso.with(MainActivity.this).load(model.getMoviePoster()).into(viewHolder.ivMoviePoster);
viewHolder.ivMoviePoster.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, DetailsActivity.class);
intent.putExtra("latitude", model.getLit());
intent.putExtra("longitude", model.getLon());
intent.putExtra("name", model.getMovieName());
startActivity(intent);
}
});
viewHolder.tvMovieName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, DetailsActivity.class);
intent.putExtra("latitude", model.getLit());
intent.putExtra("longitude", model.getLon());
intent.putExtra("name", model.getMovieName());
startActivity(intent);
}
});
viewHolder.imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String mobileNo = model.getPhone();
String uri = "tel:" + mobileNo.trim();
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(uri));
startActivity(intent);
}
});
// all your stuff
}
你确定你有打电话的权限吗 你需要电话许可。请确保您的AndroidManifest.xml中包含以下内容:
我的另一个猜测是,当您试图调用mobileNo.trim()
时,mobileNo
为空
唯一确定的方法是查看日志。您可能需要将Android Studio上的logcat视图设置更改为“详细”
或者,您可以使用
adb logcat
在终端中查看日志。复制强制关闭时,请查看日志,您应该能够找到导致它的异常。是的,我有呼叫电话权限,并尝试了String number=“”+model.getPhone();意向意向=新意向(意向.行动拨号);setData(Uri.parse(“tel:+number”);星触觉(意向);这对我有用谢谢你的回答