Кир*_*мов 3 java android android-datepicker material-components-android
我的应用程序使用 MaterialDatePicker。我想创建一个类,除其他数据外,还将存储 MaterialDatePicker 中的日期。\n我有一些问题:
\n这是我与 MaterialDatePicker 的活动代码
\npublic class NewEvent extends AppCompatActivity {\nTextInputEditText etDate, etEventId;\nAutoCompleteTextView etType, etNotif;\nMaterialToolbar toolbarNE;\nSharedPreferences sharedPreferences;\n\nprivate static final String TAG = "myLogs";\nstatic final String newEv = "newEv";\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.new_event);\n final FragmentManager fragmentManager = getSupportFragmentManager();\n final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();\n\n final FirstFragment fragment1 = new FirstFragment();\n\n etDate = findViewById(R.id.etDate);\n etType = findViewById(R.id.etType);\n etNotif = findViewById(R.id.etNotif);\n etEventId = findViewById(R.id.etEventId);\n toolbarNE = findViewById(R.id.menuNewEvent);\n\n toolbarNE.setOnMenuItemClickListener(new MaterialToolbar.OnMenuItemClickListener() {\n @Override\n public boolean onMenuItemClick(MenuItem item) {\n switch(item.getItemId())\n {\n case R.id.applyEvent:\n /*Bundle bundle = new Bundle();\n bundle.putString("name", (String) etEventId.getText().toString());\n fragment1.setArguments(bundle);\n fragmentTransaction.replace(R.id.q3, fragment1);\n fragmentTransaction.addToBackStack(null);\n fragmentTransaction.commit();*/\n\n Intent intent = new Intent(NewEvent.this, FirstFragment.class);\n intent.putExtra("name", (String) etEventId.getText().toString());\n setResult(RESULT_OK, intent);\n\n\n finish();\n //Toast.makeText(getApplicationContext(), materialDatePicker.getHeaderText(), Toast.LENGTH_SHORT).show();\n\n return true;\n }\n return false;\n }\n });\n\n\n\n // MaterialDatePicker stuff\n\n MaterialDatePicker.Builder builder = MaterialDatePicker.Builder.datePicker();\n builder.setTitleText("\xd0\x92\xd1\x8b\xd0\xb1\xd0\xb5\xd1\x80\xd0\xb8\xd1\x82\xd0\xb5 \xd0\xb4\xd0\xb0\xd1\x82\xd1\x83");\n final MaterialDatePicker materialDatePicker = builder.build();\n\n\n etDate.setOnClickListener(new View.OnClickListener() {\n @Override\n public void onClick(View view) {\n materialDatePicker.show(getSupportFragmentManager(), "DATE_PICKER");\n }\n });\n\n materialDatePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener() {\n @Override\n public void onPositiveButtonClick(Object selection) {\n etDate.setText(materialDatePicker.getHeaderText());\n\n }\n });\n\n\n\n // \xd0\xa2\xd0\xb8\xd0\xbf \xd1\x81\xd0\xbe\xd0\xb1\xd1\x8b\xd1\x82\xd0\xb8\xd1\x8f\n List listEvent = new ArrayList();\n Collections.addAll(listEvent, "Material", "Shit");\n ArrayAdapter adapterEvent = new ArrayAdapter(this,R.layout.list_item,listEvent);\n etType.setAdapter(adapterEvent);\n\n // \xd0\xa2\xd0\xb8\xd0\xbf \xd1\x83\xd0\xb2\xd0\xb5\xd0\xb4\xd0\xbe\xd0\xbc\xd0\xbb\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f\n List listNotif = new ArrayList();\n //items.add("Material");\n //items.add("Shit");\n Collections.addAll(listNotif, "\xd0\x9a\xd0\xb0\xd0\xb6\xd0\xb4\xd1\x8b\xd0\xb9 \xd0\xb4\xd0\xb5\xd0\xbd\xd1\x8c", "\xd0\xa0\xd0\xb0\xd0\xb7 \xd0\xb2 2 \xd0\xb4\xd0\xbd\xd1\x8f", "\xd0\xa0\xd0\xb0\xd0\xb7 \xd0\xb2 3 \xd0\xb4\xd0\xbd\xd1\x8f", "\xd0\xa0\xd0\xb0\xd0\xb7 \xd0\xb2 5 \xd0\xb4\xd0\xbd\xd0\xb5\xd0\xb9", "\xd0\xa0\xd0\xb0\xd0\xb7 \xd0\xb2 \xd0\xbd\xd0\xb5\xd0\xb4\xd0\xb5\xd0\xbb\xd1\x8e", "\xd0\x9d\xd0\xb5 \xd0\xbd\xd0\xb0\xd0\xbf\xd0\xbe\xd0\xbc\xd0\xb8\xd0\xbd\xd0\xb0\xd1\x82\xd1\x8c");\n //String [] ITEMS = new String[] {"S1", "S2", "S3"};\n //ArrayAdapter<String> ad = new ArrayAdapter<String>(this, R.layout.list_item, ITEMS);\n ArrayAdapter adapterNotif = new ArrayAdapter(this,R.layout.list_item, listNotif);\n etNotif.setAdapter(adapterNotif);\n\n\n\n}\n\n@Override\npublic void onActivityResult(int requestCode, int resultCode, Intent data) {\n super.onActivityResult(requestCode, resultCode, data);\n}\nRun Code Online (Sandbox Code Playgroud)\n这是我未来课程的代码,但其中还没有任何内容,因为我正在考虑日期。
\npublic class Event {\npublic String Name;\npublic String Date; // I don\'t know what type of variable to specify here, so far I have specified a string.\npublic String Comment;\npublic String Type;\npublic String Notify;\n\n\n\nEvent()\n{\n Name = "\xd0\xa1\xd0\xbe\xd0\xb1\xd1\x8b\xd1\x82\xd0\xb8\xd0\xb5";\n Date = "Date";\n Comment = "Comment";\n Type = "Type";\n Notify = "Notify";\n}\nRun Code Online (Sandbox Code Playgroud)\n}
\n要获取日期,请使用:
MaterialDatePicker<Long> picker = builder.build();
picker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener<Long>() {
@Override public void onPositiveButtonClick(Long selection) {
// Do something...
}
});
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以选择以毫秒为单位的日期。
如果你想格式化为字符串,你可以使用类似:
Calendar utc = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
utc.setTimeInMillis(selection);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String formatted = format.format(utc.getTime());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3254 次 |
| 最近记录: |