【发布时间】:2015-03-11 22:55:22
【问题描述】:
我正在使用一个使用 Android Intent 类来拨打电话的应用。
我可以成功创建对某个号码的呼叫,这样就可以了。
我现在想要的是在 TextView 中显示最后一个拨出电话号码。 我还让 TextView 成为可点击的,这样我可以通过点击重拨号码。
我正在使用 CallLog.Calls.getLastOutgoingCall(getApplicationContext());获取最后一个被叫号码。 这仅在我的应用程序中有效。
我启动应用程序,输入一个号码,然后它会拨打电话。我在TextView中设置的第一个外拨号码。之后,我输入第二个号码,该号码已在 TextView 中成功设置但是,当我点击重拨时,应用程序会呼叫第一个号码!
这是为什么呢? 我最后一个拨出号码是第二个。 为什么叫第一个号码?
另外,如果我重新启动应用程序,它会重拨第二个拨出号码。
这是我的代码:
public class MainActivity extends ActionBarActivity {
Button btnCall;
TextView number;
EditText calledNumber;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnCall = (Button) findViewById(R.id.button);
number = (TextView) findViewById(R.id.textView2);
calledNumber = (EditText) findViewById(R.id.editText);
//Gets the last outgoing number from the call log
final String lastCalledNumber = CallLog.Calls.getLastOutgoingCall(getApplicationContext());
btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String TheNumber = calledNumber.getText().toString();
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + TheNumber));
startActivity(callIntent);
number.setText(TheNumber);
}
});
//redial number in TextView by click
number.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent call = new Intent(Intent.ACTION_CALL);
call.setData(Uri.parse("tel:" + lastCalledNumber));
startActivity(call);
}
});
}
}
【问题讨论】:
标签: java android android-intent android-studio