我创建了一个使用电话的应用程序但是我遇到了一个问题,当按钮点击没有发生任何事情时,我将数字保存在数据库中。 thisi是我的代码:
final TextView txt_alamat = (TextView) dialog.findViewById(R.id.textView_alamat);
txt_alamat.setText(listData.get(position).getno_telp());
nomor = String.format("tel :", txt_alamat.getText().toString().trim());
Button btn_call = (Button) dialog.findViewById(R.id.button_telpon);
btn_call.setText(listData.get(position).getno_telp());
btn_call.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent TelpIntent = new Intent(Intent.ACTION_CALL, Uri.parse(String.valueOf(Uri.parse("tel :"+nomor))));
TelpIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (ActivityCompat.checkSelfPermission(Telp_guru_Activity.this,
android.Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
return;
} else {
Log.e(TAG,"error");
}
startActivity(TelpIntent);
}
});
答案 0 :(得分:0)
这可能是因为你在" tel _:"中添加了一个空白区域。请删除并重试
startActivity(new Intent(Intent.ACTION_DIAL)
.setData(Uri.parse("tel:" + nomor)));
答案 1 :(得分:0)
直接从DB传递号码。无需写,
nomor = String.format("tel :", txt_alamat.getText().toString().trim());
尝试在setData(),
中解析UriIntent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + nomor));
if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
return;
}
startActivity(callIntent);
确保您从DB获取电话号码。