Android实现记事本功能(26)
16lz
2021-01-23
本文实例为大家分享了Android实现记事本功能的具体代码,供大家参考,具体内容如下
MainActivity.java代码:
package siso.smartnotef.activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.ListAdapter;import android.widget.ListView;import android.widget.TextView;import java.util.ArrayList;import java.util.List;import siso.smartnotef.R;import siso.smartnotef.adapter.NotepadeAdapter;import siso.smartnotef.db.DataHelper;import siso.smartnotef.global.GlobalParams;import siso.smartnotef.model.NotepadBean;import siso.smartnotef.model.NotepadWithDataBean;import siso.smartnotef.service.MainService;public class MainActivity extends AppCompatActivity implements View.OnClickListener, NotepadeAdapter.ClickFunction { private TextView tv_add; private ListView lv_contents; private ListnotepadWithDataBeanList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent1 = new Intent(MainActivity.this, MainService.class); startService(intent1); findViews(); setListeners(); initView(); } private void findViews() { tv_add = (TextView) findViewById(R.id.tv_add); lv_contents = (ListView) findViewById(R.id.lv_content); } private void setListeners() { tv_add.setOnClickListener(this); } private void initView() { DataHelper helper = new DataHelper(MainActivity.this); notepadWithDataBeanList = new ArrayList (); List notepadBeanList = helper.getNotepadList(); for (int i = 0; i < notepadBeanList.size(); i++) { if (0 == notepadWithDataBeanList.size()) { NotepadWithDataBean notepadWithDataBean = new NotepadWithDataBean(); notepadWithDataBean.setData(notepadBeanList.get(0).getDate()); notepadWithDataBeanList.add(notepadWithDataBean); } boolean flag = true; for (int j = 0; j < notepadWithDataBeanList.size(); j++) { int date = notepadWithDataBeanList.get(j).getData(); if (date == notepadBeanList.get(i).getDate()) { notepadWithDataBeanList.get(j).getNotepadBeenList().add(notepadBeanList.get(i)); flag = false; break; } } if (flag) { NotepadWithDataBean notepadWithDataBean = new NotepadWithDataBean(); notepadWithDataBean.setData(notepadBeanList.get(i).getDate()); notepadWithDataBeanList.add(notepadWithDataBean); notepadWithDataBeanList.get(notepadWithDataBeanList.size() - 1).getNotepadBeenList().add(notepadBeanList.get(i)); } } NotepadeAdapter adapter = new NotepadeAdapter(MainActivity.this, notepadWithDataBeanList, this); lv_contents.setAdapter(adapter);// setListViewHeightBasedOnChildren(lv_contents); } public void setListViewHeightBasedOnChildren(ListView listView) { if (listView == null) return; ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); listView.setLayoutParams(params); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.tv_add: Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putInt(GlobalParams.TYPE_KEY, GlobalParams.TYPE_ADD); intent.putExtras(bundle); intent.setClass(MainActivity.this, AddContentActivity.class); startActivityForResult(intent, GlobalParams.ADD_REQUEST); break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case GlobalParams.ADD_REQUEST: if (GlobalParams.ADD_RESULT_OK == resultCode) { initView(); } break; } } @Override public void clickItem(int position, int itemPosition) { Bundle bundle = new Bundle(); bundle.putInt(GlobalParams.TYPE_KEY, GlobalParams.TYPE_EDIT); bundle.putSerializable(GlobalParams.BEAN_KEY, notepadWithDataBeanList.get(position)); bundle.putInt(GlobalParams.ITEM_POSITION_KEY, itemPosition); Intent intent = new Intent(this, AddContentActivity.class); intent.putExtras(bundle); startActivityForResult(intent, GlobalParams.ADD_REQUEST); } @Override public void longClickItem(final int position, final int itemPostion) { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setMessage("确认删除吗?"); builder.setTitle("提示"); builder.setPositiveButton("确认", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { DataHelper helper = new DataHelper(MainActivity.this); helper.deleteNotepad(notepadWithDataBeanList.get(position).getNotepadBeenList().get(itemPostion).getId()); initView(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); }}
AddContentActivity.java代码:
package siso.smartnotef.activity;import android.app.DatePickerDialog;import android.app.TimePickerDialog;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.DatePicker;import android.widget.EditText;import android.widget.TextView;import android.widget.TimePicker;import android.widget.Toast;import java.util.Calendar;import siso.smartnotef.R;import siso.smartnotef.db.DataHelper;import siso.smartnotef.global.GlobalParams;import siso.smartnotef.model.NotepadBean;import siso.smartnotef.model.NotepadWithDataBean;public class AddContentActivity extends AppCompatActivity implements View.OnClickListener { private TextView tv_save; private TextView tv_date; private TextView tv_time; private TextView tv_cancel; private EditText et_content; private String time = ""; private String date = ""; private Bundle bundle; private int type; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add_content); bundle=getIntent().getExtras(); type=bundle.getInt(GlobalParams.TYPE_KEY); findViews(); setListeners(); initDate(); } private void findViews() { et_content=(EditText)findViewById(R.id.et_content); tv_save = (TextView) findViewById(R.id.tv_save); tv_date = (TextView) findViewById(R.id.tv_date); tv_time = (TextView) findViewById(R.id.tv_time); tv_cancel=(TextView)findViewById(R.id.tv_cancel); } private void setListeners() { tv_save.setOnClickListener(this); tv_date.setOnClickListener(this); tv_time.setOnClickListener(this); tv_cancel.setOnClickListener(this); } private void initDate() { Calendar c = Calendar.getInstance(); int year=c.get(Calendar.YEAR); int month=c.get(Calendar.MONTH); int day=c.get(Calendar.DAY_OF_MONTH); date=getDate(year,month,day); if(type==GlobalParams.TYPE_EDIT){ NotepadWithDataBean notepadWithDataBean=(NotepadWithDataBean)(bundle.getSerializable(GlobalParams.BEAN_KEY)); et_content.setText(notepadWithDataBean.getNotepadBeenList().get(bundle.getInt(GlobalParams.ITEM_POSITION_KEY)).getContent()); date=notepadWithDataBean.getData()+""; tv_date.setText(date); time=notepadWithDataBean.getNotepadBeenList().get(bundle.getInt(GlobalParams.ITEM_POSITION_KEY)).getTime(); tv_time.setText(time); } } private String getDate(int year,int month,int day){ String date=""; date+=year; if(month<9){ date=date+"0"+(month+1); }else{ date+=(month+1); } if(day<10){ date=date+"0"+day; }else { date+=day; } return date; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.tv_save: if(type==GlobalParams.TYPE_EDIT){ update(); }else { save(); } break; case R.id.tv_date: selectDateDialog(); break; case R.id.tv_time: selectTimeDialog(); break; case R.id.tv_cancel: finish(); break; } } private void selectDateDialog(){ Calendar c = Calendar.getInstance(); int year=c.get(Calendar.YEAR); final int month=c.get(Calendar.MONTH)+1; int day=c.get(Calendar.DAY_OF_MONTH); new DatePickerDialog(AddContentActivity.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { date=getDate(year,monthOfYear,dayOfMonth); tv_date.setText(date); } },year,month,day).show(); } private void selectTimeDialog() { Calendar c = Calendar.getInstance(); int mHour = c.get(Calendar.HOUR_OF_DAY); int mMinute = c.get(Calendar.MINUTE); new TimePickerDialog(AddContentActivity.this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { time=formatTime(hourOfDay,minute); tv_time.setText(time); } }, mHour, mMinute, true).show(); } private String formatTime(int hour,int minute){ String time=hour+":"; if(minute<10){ time=time+"0"+minute; }else{ time+=minute; } return time; } private void save() { String content = et_content.getText().toString(); if ("".equals(content)) { Toast.makeText(AddContentActivity.this, "请输入内容", Toast.LENGTH_SHORT).show(); return; } if ("".equals(time)) { Toast.makeText(AddContentActivity.this, "请选择时间", Toast.LENGTH_SHORT).show(); return; } NotepadBean notepadBean = new NotepadBean(); notepadBean.setContent(content); notepadBean.setDate(Integer.parseInt(date)); notepadBean.setTime(time); DataHelper helper = new DataHelper(AddContentActivity.this); helper.insertData(notepadBean); setResult(GlobalParams.ADD_RESULT_OK); finish(); } private void update(){ DataHelper helper=new DataHelper(AddContentActivity.this); NotepadWithDataBean bean=(NotepadWithDataBean)(bundle.getSerializable(GlobalParams.BEAN_KEY)); int itemPosition=bundle.getInt(GlobalParams.ITEM_POSITION_KEY); helper.update(bean.getNotepadBeenList().get(itemPosition).getId(),date,time,et_content.getText().toString()); setResult(GlobalParams.ADD_RESULT_OK); finish(); }}
RemindActivity.java代码:
package siso.smartnotef.activity;import android.media.MediaPlayer;import android.media.RingtoneManager;import android.net.Uri;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.TextView;import java.io.IOException;import siso.smartnotef.R;import siso.smartnotef.global.GlobalParams;public class RemindActivity extends AppCompatActivity { private TextView tv_content; private Button bt_confirm; private MediaPlayer mMediaPlayer;; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_remind); findViews(); setListeners(); Bundle bundle=getIntent().getExtras(); String content=bundle.getString(GlobalParams.CONTENT_KEY); tv_content.setText(content); playSound(); } private void findViews(){ tv_content=(TextView)findViewById(R.id.tv_content); bt_confirm=(Button) findViewById(R.id.bt_confirm); } private void setListeners(){ bt_confirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(null!=mMediaPlayer){ mMediaPlayer.stop(); finish(); } } }); } public void playSound() { new Thread(new Runnable() { @Override public void run() { mMediaPlayer = MediaPlayer.create(RemindActivity.this, getSystemDefultRingtoneUri()); mMediaPlayer.setLooping(true);//设置循环 try { mMediaPlayer.prepare(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } mMediaPlayer.start(); } }).start(); } //获取系统默认铃声的Uri private Uri getSystemDefultRingtoneUri() { return RingtoneManager.getActualDefaultRingtoneUri(RemindActivity.this, RingtoneManager.TYPE_RINGTONE); }}
activity_main.xml内容:
<?xml version="1.0" encoding="utf-8"?>
activity_add_content.xml内容:
<?xml version="1.0" encoding="utf-8"?>
activity_remind.xml内容:
<?xml version="1.0" encoding="utf-8"?>
AndroidManifest.xml内容:
<?xml version="1.0" encoding="utf-8"?>
项目结构如图:
项目运行结果如图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
更多相关文章
- android把字符串内容保存到指定路径
- android 实现分享功能
- 【Android】手机地图功能——利用手机GPS获取用户地理坐标
- Android中内容提供者ContentProvider实现数据库增删改查
- android 音乐播放器添加音乐分享功能
- Android实现邮箱验证功能
- android简单登陆和注册功能实现+SQLite数据库学习
- android 把虚拟键盘的回车改为搜索功能(亲试)