我的Android应用程序包含Edittext,Button
Edittext:允许用户输入他想要的号码。 按钮:称为“呼叫”来拨打电话。
我希望有一种方法可以在完成后获得电话的确切日期和时间
我的java代码:
public String string;
public String number = null; //
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button CallButton = (Button)findViewById(R.id.button1);
CallButton.setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
EditText txtcallnumber = null;
txtcallnumber = (EditText)findViewById(R.id.callEdit);
string = txtcallnumber.getText().toString();
number = "tel:" +string ;
Intent CallIntent = new Intent (Intent.ACTION_CALL,Uri.parse(number));
startActivity(CallIntent);
}
我该怎么做?
提前致谢
答案 0 :(得分:0)
假设您的代码成功拨打了电话,而不是使用startActivity
,请使用startActivityForResult
。这会告诉您的应用在电话完成后返回Activity
的特定部分。这部分是onActivityResult
方法。
然后,您需要在onActivityResult
中实施Activity
。如果您在requestCode
中使用的startActivityForResult
与requestCode
参数匹配,则从系统中获取当前时间。
答案 1 :(得分:0)
将startActivity更改为startActivityForResult
startActivityForResult(CallIntent, CALL_REQUEST_CODE); // any integer value
在onActivityForResult
中获取结果@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
SimpleDateFormat formatter = new SimpleDateFormat(
"dd/MM/yyyy HH:mm:ss");
String dateTimeString = formatter.format(new Date(System
.currentTimeMillis()));
Log.d("TIME", dateTimeString);
}
}
答案 2 :(得分:0)
正如前面的回答所述,您可以为结果启动一个活动,然后实现onActivityResult方法,如下所示:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK){
if(requestCode == DONE_CALL){
}
}
}
在方法内部,您可以执行以下操作来捕获日期和时间:
Time today = new Time(Time.getCurrentTimezone());
today.setToNow();
String formattedData = today.format("%F %H:%M");