界面上方,左边一个文本框,右边一个按钮1,界面往下还有一个按钮2。单击按钮1,显示一个日期对话框,选择日期并单击该对话框上的ok按钮,对话框消失,在对话框上选择的日期显示在文本框中;单击按钮2,进入界面2,并将界面1上文本框的内容显示在界面2上。 请帮我完成以上android题
时间: 2024-03-24 16:40:08 浏览: 106
好的,以下是一个简单的实现:
1. 在界面1的布局文件中添加一个EditText和两个Button:
```
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/et_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="20dp"
android:layout_centerVertical="true"
android:hint="请选择日期"/>
<Button
android:id="@+id/btn_select_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
android:layout_centerVertical="true"
android:text="选择日期"/>
<Button
android:id="@+id/btn_go_to_page2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/et_date"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="进入界面2"/>
</RelativeLayout>
```
2. 在界面1的Java代码中,添加按钮1的单击事件,显示日期对话框,并将选择的日期显示在EditText中:
```
private EditText etDate;
private Button btnSelectDate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etDate = findViewById(R.id.et_date);
btnSelectDate = findViewById(R.id.btn_select_date);
btnSelectDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 显示日期对话框
showDatePickerDialog();
}
});
}
private void showDatePickerDialog() {
// 获取当前日期
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
// 创建日期对话框
DatePickerDialog datePickerDialog = new DatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
// 将选择的日期显示在EditText中
etDate.setText(year + "-" + (month + 1) + "-" + dayOfMonth);
}
}, year, month, dayOfMonth);
// 显示日期对话框
datePickerDialog.show();
}
```
3. 在界面1的Java代码中,添加按钮2的单击事件,跳转到界面2,并将EditText中的内容传递给界面2:
```
private Button btnGoToPage2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 省略代码...
btnGoToPage2 = findViewById(R.id.btn_go_to_page2);
btnGoToPage2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 跳转到界面2,并将EditText中的内容传递给界面2
Intent intent = new Intent(MainActivity.this, Page2Activity.class);
intent.putExtra("date", etDate.getText().toString());
startActivity(intent);
}
});
}
```
4. 在界面2的布局文件中添加一个TextView,用于显示从界面1传递过来的内容:
```
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"/>
</RelativeLayout>
```
5. 在界面2的Java代码中,获取从界面1传递过来的内容,并将其显示在TextView中:
```
private TextView tvDate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_page2);
tvDate = findViewById(R.id.tv_date);
// 获取从界面1传递过来的内容
String date = getIntent().getStringExtra("date");
// 将内容显示在TextView中
tvDate.setText(date);
}
```
阅读全文
相关推荐
点击文本框中按钮弹出日期
<input name="text" type="text" class="Input" id=showdate />
<input name="image" type="image" id=controlcalendar onclick="javascript:document.getElementById('caltable').style.display='';" value="日历" src="images/rq.gif" />
3 <input name="year" id="year" type="text" size="4" maxlength="4" onKeyDown="if (event.keyCode==13){setDate()}" onKeyUp="this.value=this.value.replace(/[^0-9]/g,'')" onpaste="this.value=this.value.replace(/[^0-9]/g,'')"> 年 <input name="month" id="month" type="text" size="1" maxlength="2" onKeyDown="if (event.keyCode==13){setDate()}" onKeyUp="this.value=this.value.replace(/[^0-9]/g,'')" onpaste="this.value=this.value.replace(/[^0-9]/g,'')"> 月 4
<Script LANGUAGE="JavaScript">
document.write("" + days[0] + " ");
for (var intLoop = 1; intLoop < days.length-1;intLoop++)
document.write("" + days[intLoop] + " ");
document.write("" + days[intLoop] + " ");
</Script>
<Script LANGUAGE="JavaScript">
for (var intWeeks = 0; intWeeks < 6; intWeeks++)
{
document.write("");
for (var intDays = 0; intDays < days.length;intDays++) document.write(" ");
document.write(" ");
}
</Script>