Android实现记事本功能(26)
本文实例为大家分享了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实现记事本功能(26)
本文URL:http://scjbc.cn/article/jpedcp.html