我试图让按钮(R.id.buttonring)拨打在textview中输入的名为tvTelefon的电话号码。但是,当我点击该按钮时,我的手机正试图拨打电话" w4126848130,511290,549"而不是在textview中输入的电话号码。怎么想的怎么样?我没有收到任何错误消息,所以我一无所知!谢谢!
public class Activity2 extends Activity {
public static final String SPARAD_DATA = "sparadData";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
SharedPreferences sp = getSharedPreferences(SPARAD_DATA, Context.MODE_PRIVATE);
TextView tvRubrik = (TextView)findViewById(R.id.textViewrubrik);
tvRubrik.setText(sp.getString("rubrik", "Rubrik saknas"));
TextView tvNamn = (TextView)findViewById(R.id.textViewnamn);
tvNamn.setText(sp.getString("namn", "Namn saknas"));
TextView tvText = (TextView)findViewById(R.id.textViewtext);
tvText.setText(sp.getString("text", "Text saknas"));
final TextView tvTelefon = (TextView)findViewById(R.id.textViewtelefon);
tvTelefon.setText(sp.getString("telefon", "Telefon saknas"));
TextView tvPris = (TextView)findViewById(R.id.textViewpris);
tvPris.setText(sp.getString("pris", "Pris saknas"));
Button r = (Button)findViewById(R.id.buttonring);
r.setOnClickListener (new View.OnClickListener() {
Intent call = new Intent(Intent.ACTION_DIAL);
@Override
public void onClick(View v){
call.setData(Uri.parse("tel:" +tvTelefon));
startActivity(call);
}
});
}
}
答案 0 :(得分:1)
轻微的改变可能会对您有所帮助:
call.setData(Uri.parse("tel:" +tvTelefon));
应该是:
call.setData(Uri.parse("tel:" +tvTelefon.getText().toString()));
您正在传递对象引用,获取您放入其中的字符串。
答案 1 :(得分:0)
实际上,我如何理解您发布的代码,您可以直接从您的偏好中获取电话号码。试试这个:
call.setData(Uri.parse("tel:" + sp.getString("telefon", "")));
而不是:
call.setData(Uri.parse("tel:" +tvTelefon));