使用日历视图中的日期和时间选取器中的时间填充编辑文本



我正在使用Eclipse构建一个Android应用程序,我有一个活动,它有2个编辑文本,当我点击它们时,他们会将我重定向到另一个活动,然后我将从CalendarView中选择一个日期,从TimePicker中选择一个时间。之后,我将单击"完成",它会将我重定向回上一个活动,并填充了 EditText。

现在,我的问题是,如何使用从日历视图和时间选择器中选择的日期和时间填充 EditText dd/MMM/yyyy 和 24 小时格式?我尝试使用Intent,但我不知道如何编码。

这是我的部分代码:

public class RentStartActivity extends Activity {
CalendarView calendar1;
TimePicker time1;
Button btnCancel1, btnDone1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_rent_start);
    btnCancel1 = (Button) findViewById(R.id.btnCancel1);
    btnCancel1.setOnClickListener(new OnClickListener(){
        public void onClick(View v){
            Intent cancel = new Intent(RentStartActivity.this, SearchActivity.class);
            startActivity(cancel);
        }
    });
    btnDone1 = (Button) findViewById(R.id.btnDone1);
    btnDone1.setOnClickListener(new OnClickListener(){
        public void onClick(View v){
            Intent done = new Intent(RentStartActivity.this, SearchActivity.class);
            done.putExtra("Date1", calendar1.getDate());
            done.putExtra("Time", time1.getDrawingTime());
            startActivity(done);
        }
    });
}

使用startActivityForResult()在您的搜索活动中:

    Intent i = new Intent(this, RentStartActivity.class);
    startActivityForResult(i, 1);

在您的 RentStartActivity 中:

btnDone1 = (Button) findViewById(R.id.btnDone1);
btnDone1.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
        Intent done = new Intent();
        done.putExtra("Date1", calendar1.getDate());
        done.putExtra("Time", time1.getDrawingTime());
        setResult(Activity.RESULT_OK,done);
        startActivity(done);
        finish();
    }
});

并在搜索活动中获取数据:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1) {
        if(resultCode == Activity.RESULT_OK){
            String date = data.getStringExtra("Date1");
            String time = data.getStringExtra("Time");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            //Write your code if there's no result
        }
    }
}

要格式化日期时间,您可以访问此处。

您可以使用 startActivityForResult(( 和 onActivityResult(( 在活动之间发送数据。

查看此链接:如何在Android上管理"startActivityForResult"?

https://developer.android.com/training/basics/intents/result.html

最新更新