Android开发,使用带有DatePicker的EditText

时间:2014-02-10 21:35:23

标签: android

我正在开发一款Android app&我现在被困住了。该应用程序有一个EditText,Button和两个DatePickers。我希望用户插入一个数字,然后在第一个DatePicker上选择一个日期,当选择该按钮时,我希望插入的数字与所选日期一起添加。示例:如果用户在EditText上插入4并在DatePicker上选择2014年2月10日,则新日期应为2014年2月14日“4 + 10 = 14”我希望新日期显示在第二个DatePicker&它不应该是可编辑的。请帮帮我

2 个答案:

答案 0 :(得分:0)

试试这个:

final SimpleDateFormat dateFormatUs = new SimpleDateFormat("yyyy-mm-dd", Locale.US);

private void changeDate() {
        Calendar calendar = Calendar.getInstance();
        String date = editText.getText().toString(); 
                /*make your counts*/

        Date dataSet = null;
        try {
              dataSet = dateFormatUs.parse(date);
        } catch (ParseException e) {
               e.printStackTrace();
        }
        calendar.setTime(dataBeginSet);

    }

答案 1 :(得分:0)

我不确定这是否是你要找的,但我为你编了一个样本。

MainActivity.java

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);

        findViewById(R.id.computeDate).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                EditText days = (EditText) findViewById(R.id.daysEditText);
                DatePicker datePicker = ((DatePicker) findViewById(R.id.datePicker));

                Calendar cal = Calendar.getInstance();
                cal.set(Calendar.DAY_OF_MONTH, datePicker.getDayOfMonth());
                cal.set(Calendar.MONTH, datePicker.getMonth());
                cal.set(Calendar.YEAR, datePicker.getYear());
                cal.add(Calendar.DAY_OF_YEAR, Integer.parseInt(days.getText().toString()));

                DatePicker computedDatePicker = ((DatePicker) findViewById(R.id.computedDatePicker));
                computedDatePicker.updateDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH));
            }
        });
    }
}

main_activity.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <EditText
            android:id="@+id/daysEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:ems="10"
            android:layout_gravity="center_horizontal" />

        <DatePicker
            android:id="@+id/datePicker"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:calendarViewShown="false"
            android:layout_gravity="center_horizontal" />

        <Button
            android:id="@+id/computeDate"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Compute"
            android:layout_gravity="center_horizontal" />

        <DatePicker
            android:id="@+id/computedDatePicker"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:calendarViewShown="false"
            android:layout_gravity="center_horizontal" />

    </LinearLayout>

</ScrollView>