本文实例为大家分享了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 List notepadWithDataBeanList; @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实现记事本功能(26)_第1张图片

项目运行结果如图:

Android实现记事本功能(26)_第2张图片

Android实现记事本功能(26)_第3张图片

Android实现记事本功能(26)_第4张图片

Android实现记事本功能(26)_第5张图片

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多相关文章

  1. android把字符串内容保存到指定路径
  2. android 实现分享功能
  3. 【Android】手机地图功能——利用手机GPS获取用户地理坐标
  4. Android中内容提供者ContentProvider实现数据库增删改查
  5. android 音乐播放器添加音乐分享功能
  6. Android实现邮箱验证功能
  7. android简单登陆和注册功能实现+SQLite数据库学习
  8. android 把虚拟键盘的回车改为搜索功能(亲试)

随机推荐

  1. Android参考学习地址及ActionBar Fragmen
  2. Android(安卓)EventLog
  3. 【070】Android(安卓)中相关功能的实现代
  4. Android动态获取权限,多组权限
  5. Android去掉标题栏及崩溃问题
  6. Android(安卓)数据持久化方式
  7. android用服务service与广播broadcastrec
  8. Android(安卓)NDK C++ 开发利器:Android(
  9. android ListView出了错怎么找问题
  10. Android(安卓)选择图片、上传图片之Image