精华内容
下载资源
问答
  • android备忘录实现

    2014-11-01 10:40:30
    android备忘录的简单实现 包括闹钟机制、sqlite的使用、消息提醒的简单应用。
  • 终于,Android作业弄完了,最后一个,备忘录教学。相关安卓教学内容:首先第一步,还是老样子,创建一个NoteActivity。image.png第二步,打开activity_note.xml,开始布局,话不多说了,关于这一块的内容我在登录,...

    终于,Android作业弄完了,最后一个,备忘录教学。

    相关安卓教学内容:

    首先第一步,还是老样子,创建一个NoteActivity。

    image.png

    第二步,打开activity_note.xml,开始布局,话不多说了,关于这一块的内容我在登录,注册当中已经教学的很详细了,直接上代码吧,反正我码再多字估计你们也不看....

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".NoteActivity"

    android:background="@drawable/notebg">

    android:id="@+id/textView3"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_alignParentTop="true"

    android:layout_centerHorizontal="true"

    android:layout_marginTop="10dp"

    android:text="备忘录"

    android:textSize="30dp"/>

    android:id="@+id/editText3"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:ems="10"

    android:minLines="17"

    android:inputType="textMultiLine"

    android:hint="点击此处输入文字"

    android:background="@null"

    android:layout_marginLeft="20dp"

    android:layout_marginRight="20dp"

    android:layout_alignParentStart="true"

    android:layout_above="@+id/button4"

    android:layout_alignParentEnd="true"

    android:layout_below="@+id/textView3"

    android:gravity="left|top"

    android:textSize="20dp"/>

    android:id="@+id/button4"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="保存"

    android:layout_alignParentBottom="true"

    android:layout_alignStart="@+id/editText3" />

    android:id="@+id/button5"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="重置"

    android:layout_alignParentBottom="true"

    android:layout_alignEnd="@+id/editText3" />

    android:id="@+id/textView4"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_alignBottom="@+id/textView3"

    android:layout_alignEnd="@+id/editText3"

    android:text="0个字" />

    效果如下:怎么样,看上去还不错吧?

    image.png

    接下来打开NoteActivity,直接上代码,不想码注释了,码了也没人看,反正你们最喜欢的就是复制粘贴代码

    package com.wxy.homework;

    import android.content.Context;

    import android.content.pm.ActivityInfo;

    import android.os.Bundle;

    import android.text.Editable;

    import android.text.TextWatcher;

    import android.view.KeyEvent;

    import android.view.View;

    import android.view.WindowManager;

    import android.widget.Button;

    import android.widget.EditText;

    import android.widget.TextView;

    import android.widget.Toast;

    import androidx.appcompat.app.ActionBar;

    import androidx.appcompat.app.AppCompatActivity;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    public class NoteActivity extends AppCompatActivity {

    private EditText inputInfo;

    private Button save;

    private Button reset;

    private TextView count;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_note);

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    setFullScreen();

    hideBar();

    inputInfo = (EditText) findViewById(R.id.editText3);

    save = (Button) findViewById(R.id.button4);

    reset = (Button) findViewById(R.id.button5);

    count = (TextView)findViewById(R.id.textView4);

    inputInfo.addTextChangedListener(new TextWatcher() {

    @Override

    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

    }

    @Override

    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

    }

    @Override

    public void afterTextChanged(Editable editable) {

    count.setText(inputInfo.getText().length()+"个字");

    }

    });

    onload();

    inputInfo.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View view) {

    inputInfo.setCursorVisible(true);

    }

    });

    save.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View view) {

    FileOutputStream fos = null;

    try{

    fos = openFileOutput("txt", Context.MODE_PRIVATE);

    String text = inputInfo.getText().toString();

    fos.write(text.getBytes());

    }catch (Exception e){

    e.printStackTrace();

    }finally {

    try{

    if(fos!=null){

    fos.flush();

    Toast.makeText(NoteActivity.this,"保存成功!",Toast.LENGTH_SHORT).show();

    fos.close();

    }

    }catch(Exception e){

    e.printStackTrace();

    }

    }

    }

    });

    reset.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View view) {

    FileOutputStream fos = null;

    inputInfo.setText("");

    try{

    fos = openFileOutput("txt", Context.MODE_PRIVATE);

    String text = "";

    fos.write(text.getBytes());

    }catch (Exception e){

    e.printStackTrace();

    }finally {

    try{

    if(fos!=null){

    fos.flush();

    Toast.makeText(NoteActivity.this,"清空成功!",Toast.LENGTH_SHORT).show();

    fos.close();

    }

    }catch(Exception e){

    e.printStackTrace();

    }

    }

    }

    });

    }

    public void onload(){

    FileInputStream fis = null;

    try{

    fis = openFileInput("txt");

    if(fis.available()==0){

    return;

    }else{

    byte[] con = new byte[fis.available()];

    while(fis.read(con)!=-1){

    }

    inputInfo.setText(new String(con));

    inputInfo.setSelection(inputInfo.getText().length());

    inputInfo.setCursorVisible(false);

    }

    }catch(Exception e){

    e.printStackTrace();

    }

    }

    long time;

    public boolean onKeyDown(int keyCode, KeyEvent event){

    if(keyCode==KeyEvent.KEYCODE_BACK&&event.getAction()==KeyEvent.ACTION_DOWN){

    if(System.currentTimeMillis()-time>2000){

    Toast.makeText(NoteActivity.this,"再次点击返回键,程序退出",Toast.LENGTH_SHORT).show();

    time = System.currentTimeMillis();

    }else{

    NoteActivity.this.finish();

    }

    return true;

    }

    return super.onKeyDown(keyCode,event);

    }

    private void hideBar(){

    ActionBar actionBar = getSupportActionBar();

    if(actionBar!=null){

    actionBar.hide();

    }

    }

    private void setFullScreen(){

    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

    WindowManager.LayoutParams.FLAG_FULLSCREEN);

    }

    }

    然后,老师作业要求是,登录之后,直接跳转到备忘录,所以我们要调整启动顺序。打开LoginActivity,

    调整启动顺序

    image.png

    好了,激动人心的时候又到了,直接开始测试

    我们输入之前注册的用户名称和密码进行登录

    image.png

    发现登录成功,完美跳转到备忘录界面

    image.png

    我们输入任意字符,点击保存,发现保存成功,且下次登录时,直接显示保存的字符

    image.png

    我们点击右下角的重置,发现备忘录内容全部清空,完美运行

    image.png

    好了我亲爱的同学们,安卓作业搞定了。

    欢迎关注我,我将不定期更新教学博客和技术贴。

    展开全文
  • Android 备忘录

    2019-03-28 11:02:30
    Android 备忘录实现增删改查功能,设置闹钟,搜索MP3播放器并添加播放。
  • 终于,Android作业弄完了,最后一个,备忘录教学。相关安卓教学内容:首先第一步,还是老样子,创建一个NoteActivity。image.png第二步,打开activity_note.xml,开始布局,话不多说了,关于这一块的内容我在登录,...

    终于,Android作业弄完了,最后一个,备忘录教学。

    相关安卓教学内容:

    首先第一步,还是老样子,创建一个NoteActivity。

    image.png

    第二步,打开activity_note.xml,开始布局,话不多说了,关于这一块的内容我在登录,注册当中已经教学的很详细了,直接上代码吧,反正我码再多字估计你们也不看....

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".NoteActivity"

    android:background="@drawable/notebg">

    android:id="@+id/textView3"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_alignParentTop="true"

    android:layout_centerHorizontal="true"

    android:layout_marginTop="10dp"

    android:text="备忘录"

    android:textSize="30dp"/>

    android:id="@+id/editText3"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:ems="10"

    android:minLines="17"

    android:inputType="textMultiLine"

    android:hint="点击此处输入文字"

    android:background="@null"

    android:layout_marginLeft="20dp"

    android:layout_marginRight="20dp"

    android:layout_alignParentStart="true"

    android:layout_above="@+id/button4"

    android:layout_alignParentEnd="true"

    android:layout_below="@+id/textView3"

    android:gravity="left|top"

    android:textSize="20dp"/>

    android:id="@+id/button4"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="保存"

    android:layout_alignParentBottom="true"

    android:layout_alignStart="@+id/editText3" />

    android:id="@+id/button5"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="重置"

    android:layout_alignParentBottom="true"

    android:layout_alignEnd="@+id/editText3" />

    android:id="@+id/textView4"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_alignBottom="@+id/textView3"

    android:layout_alignEnd="@+id/editText3"

    android:text="0个字" />

    效果如下:怎么样,看上去还不错吧?

    image.png

    接下来打开NoteActivity,直接上代码,不想码注释了,码了也没人看,反正你们最喜欢的就是复制粘贴代码

    package com.wxy.homework;

    import android.content.Context;

    import android.content.pm.ActivityInfo;

    import android.os.Bundle;

    import android.text.Editable;

    import android.text.TextWatcher;

    import android.view.KeyEvent;

    import android.view.View;

    import android.view.WindowManager;

    import android.widget.Button;

    import android.widget.EditText;

    import android.widget.TextView;

    import android.widget.Toast;

    import androidx.appcompat.app.ActionBar;

    import androidx.appcompat.app.AppCompatActivity;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    public class NoteActivity extends AppCompatActivity {

    private EditText inputInfo;

    private Button save;

    private Button reset;

    private TextView count;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_note);

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    setFullScreen();

    hideBar();

    inputInfo = (EditText) findViewById(R.id.editText3);

    save = (Button) findViewById(R.id.button4);

    reset = (Button) findViewById(R.id.button5);

    count = (TextView)findViewById(R.id.textView4);

    inputInfo.addTextChangedListener(new TextWatcher() {

    @Override

    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

    }

    @Override

    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

    }

    @Override

    public void afterTextChanged(Editable editable) {

    count.setText(inputInfo.getText().length()+"个字");

    }

    });

    onload();

    inputInfo.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View view) {

    inputInfo.setCursorVisible(true);

    }

    });

    save.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View view) {

    FileOutputStream fos = null;

    try{

    fos = openFileOutput("txt", Context.MODE_PRIVATE);

    String text = inputInfo.getText().toString();

    fos.write(text.getBytes());

    }catch (Exception e){

    e.printStackTrace();

    }finally {

    try{

    if(fos!=null){

    fos.flush();

    Toast.makeText(NoteActivity.this,"保存成功!",Toast.LENGTH_SHORT).show();

    fos.close();

    }

    }catch(Exception e){

    e.printStackTrace();

    }

    }

    }

    });

    reset.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View view) {

    FileOutputStream fos = null;

    inputInfo.setText("");

    try{

    fos = openFileOutput("txt", Context.MODE_PRIVATE);

    String text = "";

    fos.write(text.getBytes());

    }catch (Exception e){

    e.printStackTrace();

    }finally {

    try{

    if(fos!=null){

    fos.flush();

    Toast.makeText(NoteActivity.this,"清空成功!",Toast.LENGTH_SHORT).show();

    fos.close();

    }

    }catch(Exception e){

    e.printStackTrace();

    }

    }

    }

    });

    }

    public void onload(){

    FileInputStream fis = null;

    try{

    fis = openFileInput("txt");

    if(fis.available()==0){

    return;

    }else{

    byte[] con = new byte[fis.available()];

    while(fis.read(con)!=-1){

    }

    inputInfo.setText(new String(con));

    inputInfo.setSelection(inputInfo.getText().length());

    inputInfo.setCursorVisible(false);

    }

    }catch(Exception e){

    e.printStackTrace();

    }

    }

    long time;

    public boolean onKeyDown(int keyCode, KeyEvent event){

    if(keyCode==KeyEvent.KEYCODE_BACK&&event.getAction()==KeyEvent.ACTION_DOWN){

    if(System.currentTimeMillis()-time>2000){

    Toast.makeText(NoteActivity.this,"再次点击返回键,程序退出",Toast.LENGTH_SHORT).show();

    time = System.currentTimeMillis();

    }else{

    NoteActivity.this.finish();

    }

    return true;

    }

    return super.onKeyDown(keyCode,event);

    }

    private void hideBar(){

    ActionBar actionBar = getSupportActionBar();

    if(actionBar!=null){

    actionBar.hide();

    }

    }

    private void setFullScreen(){

    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

    WindowManager.LayoutParams.FLAG_FULLSCREEN);

    }

    }

    然后,老师作业要求是,登录之后,直接跳转到备忘录,所以我们要调整启动顺序。打开LoginActivity,

    调整启动顺序

    image.png

    好了,激动人心的时候又到了,直接开始测试

    我们输入之前注册的用户名称和密码进行登录

    image.png

    发现登录成功,完美跳转到备忘录界面

    image.png

    我们输入任意字符,点击保存,发现保存成功,且下次登录时,直接显示保存的字符

    image.png

    我们点击右下角的重置,发现备忘录内容全部清空,完美运行

    image.png

    好了我亲爱的同学们,安卓作业搞定了。

    欢迎关注我,我将不定期更新教学博客和技术贴。

    展开全文
  • Android备忘录系统

    2017-06-03 22:50:18
    Android备忘录系统。仿为知笔记,实现了创建不同的笔记和查询功能。功能相对而言比较简单。
  • android备忘录

    2012-12-12 20:14:48
    android备忘录,基本功能都实现了。可以供大家参考。
  • android 备忘录之简单实现

    万次阅读 多人点赞 2014-10-31 17:50:10
    首先创建保存备忘录信息的表:

    首先创建保存备忘录信息的表:

    DbHelper.java

    package com.cjq.androidbwl;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
    
    /**
     * 
     * @author cjianquan
     * @since 2014年10月31日
     */
    public class DbHelper extends SQLiteOpenHelper {
    
    	public DbHelper(Context context, String name, CursorFactory factory,
    			int version) {
    		super(context, name, factory, version);
    		// TODO Auto-generated constructor stub
    	}
    
    	@Override
    	public void onCreate(SQLiteDatabase db) {
    		StringBuilder sql = new StringBuilder();
    		sql.append("create table if not exists tb_bwl(")
    		.append("id integer primary key autoincrement,")
    		.append("title varchar(50),")
    		.append("content varchar(200),")
    		.append("createDate varchar(10),")
    		.append("noticeDate varchar(10),")
    		.append("noticeTime varchar(5) )");
    		db.execSQL(sql.toString());
    		
    	}
    
    	@Override
    	public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
    		// TODO Auto-generated method stub
    
    	}
    
    }
    


    MainActivity.java 

    package com.cjq.androidbwl;
    
    import java.util.Calendar;
    
    import android.app.Activity;
    import android.app.AlarmManager;
    import android.app.Dialog;
    import android.app.PendingIntent;
    import android.app.TimePickerDialog;
    import android.content.Context;
    import android.content.Intent;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.ContextMenu;
    import android.view.ContextMenu.ContextMenuInfo;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.AdapterContextMenuInfo;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ImageButton;
    import android.widget.ListView;
    import android.widget.SimpleCursorAdapter;
    import android.widget.TextView;
    import android.widget.TimePicker;
    import android.widget.Toast;
    
    /**
     * 
     * @author cjianquan
     * @since 2014年10月31日
     */
    public class MainActivity extends Activity {
    	
    	private AlarmManager alarmManager=null;
    	Calendar cal=Calendar.getInstance();
    	final int DIALOG_TIME = 0; //设置对话框id
    	
    	private DbHelper dbhelper;
    	private SQLiteDatabase db;  
    	
    	SimpleCursorAdapter adapter = null;
    	ListView lv;
    
    	/* (non-Javadoc)
    	 * @see android.app.Activity#onCreate(android.os.Bundle)
    	 */
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		alarmManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
    		
    		dbhelper = new DbHelper(this, "db_bwl", null, 1);
    		db = dbhelper.getReadableDatabase();
    		
    		Cursor cursor = db.query("tb_bwl", new String[]{"id as _id","title","content","noticeDate","noticeTime"}, null, null, null, null,null);
    		
    		lv = (ListView)findViewById(R.id.lv_bwlList);
    		
    		adapter = new SimpleCursorAdapter(this, R.layout.list_item_bwl, cursor, 
    				new String[]{"title","noticeDate","noticeTime","content"}, 
    				new int[]{R.id.title,R.id.noticeDate,R.id.noticeTime,R.id.content});
    		
    //		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, getDatas());
    		
    		lv.setAdapter(adapter);
    		
    		this.registerForContextMenu(lv);
    		
    		lv.setOnItemClickListener(new OnItemClickListener() {
    
    			@Override
    			public void onItemClick(AdapterView<?> parent, View view, int position,
    					long id) {
    				String title = ((TextView)view.findViewById(R.id.title)).getText().toString();
    				String content = ((TextView)view.findViewById(R.id.content)).getText().toString();
    				String noticeDate = ((TextView)view.findViewById(R.id.noticeDate)).getText().toString();
    				String noticeTime = ((TextView)view.findViewById(R.id.noticeTime)).getText().toString();
    				
    				Intent intent = new Intent();
    				intent.setClass(MainActivity.this,AddBwlActivity.class);
    				Bundle bundle = new Bundle();
    				bundle.putLong("id", id);
    				bundle.putString("title", title);
    				bundle.putString("content", content);
    				bundle.putString("noticeDate", noticeDate);
    				bundle.putString("noticeTime", noticeTime);
    				
    				intent.putExtras(bundle);
    				
    				startActivity(intent);
    			}
    			
    		});
    		
    		
    		//添加备忘录按钮
    		ImageButton btnAdd = (ImageButton)findViewById(R.id.btnAdd);
    		btnAdd.setOnClickListener(new View.OnClickListener() {
    			
    			@Override
    			public void onClick(View view) {
    				
    				Intent intent = new Intent(MainActivity.this,AddBwlActivity.class);
    				startActivity(intent);
    			}
    		});
    		
    		
    //		//创建两个Intent,一个是用于AlarmReceiver类处理的,一个是用于广播的
    //		AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    //		Intent intent = new Intent(MainActivity.this,AlarmReceiver.class);
    //		intent.setAction("ALARM_ACTION");
    //		PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);
    //		
    //		//设置真正能让alarm起作用的参数
    //		//设置alarm是以何种方式发生的,这里用的是以UTC时间为基准,并在alarm发生时同时唤醒设备的模式。
    //		am.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),pendingIntent);
    //		am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10*1000, 60*60*1000, pendingIntent);
    		
    		
    	}
    
    	//长按的上下文菜单
    	public void onCreateContextMenu(ContextMenu menu,View view,ContextMenuInfo menuInfo){
    		menu.setHeaderIcon(R.drawable.alarm);
    		menu.add(0,3,0,"修改");
    		menu.add(0,4,0,"删除");
    	}
    	
    	public boolean onContextItemSelected(MenuItem item){
    		AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo)item.getMenuInfo();
    		switch(item.getItemId()){
    		case 3:
    			String title = ((TextView)menuInfo.targetView.findViewById(R.id.title)).getText().toString();
    			String content = ((TextView)menuInfo.targetView.findViewById(R.id.content)).getText().toString();
    			String noticeDate = ((TextView)menuInfo.targetView.findViewById(R.id.noticeDate)).getText().toString();
    			String noticeTime = ((TextView)menuInfo.targetView.findViewById(R.id.noticeTime)).getText().toString();
    			
    			Intent intent = new Intent();
    			intent.setClass(this,AddBwlActivity.class);
    			Bundle bundle = new Bundle();
    			bundle.putLong("id", menuInfo.id);
    			bundle.putString("title", title);
    			bundle.putString("content", content);
    			bundle.putString("noticeDate", noticeDate);
    			bundle.putString("noticeTime", noticeTime);
    			
    			intent.putExtras(bundle);
    			
    			startActivity(intent);
    			break;
    		case 4:
    			dbhelper = new DbHelper(this, "db_bwl", null, 1);
    			db = dbhelper.getWritableDatabase();
    			int status = db.delete("tb_bwl", "id=?", new String[]{""+menuInfo.id});
    			if(status!=-1){
    				//删除后更新listview
    				Cursor cursor = db.query("tb_bwl", new String[]{"id as _id","title","content","noticeDate","noticeTime"}, null, null, null, null,null);
    				adapter.changeCursor(cursor);
    //				adapter.notifyDataSetChanged();
    				Toast.makeText(this, "删除成功", Toast.LENGTH_LONG).show();
    			}else{
    				Toast.makeText(this, "删除失败", Toast.LENGTH_LONG).show();
    			}
    			
    			break;
    			
    		}
    		
    		
    		return true;
    	}
    
    	@Override
    	protected Dialog onCreateDialog(int id) {
    		Dialog dialog=null;
    		switch (id) {
    		case DIALOG_TIME:
    		dialog=new TimePickerDialog(
    		this,
    		new TimePickerDialog.OnTimeSetListener(){
    		public void onTimeSet(TimePicker timePicker, int hourOfDay,int minute) {
    		Calendar c=Calendar.getInstance();//获取日期对象 
    		c.setTimeInMillis(System.currentTimeMillis()); //设置Calendar对象
    		c.set(Calendar.HOUR, hourOfDay); //设置闹钟小时数
    		c.set(Calendar.MINUTE, c.get(Calendar.MINUTE)+1); //设置闹钟的分钟数
    		c.set(Calendar.SECOND, 0); //设置闹钟的秒数
    		c.set(Calendar.MILLISECOND, 0); //设置闹钟的毫秒数
    		
    		Intent intent = new Intent(MainActivity.this, AlarmReceiver.class); //创建Intent对象
    //		intent.setAction("ALARM_ACTION");
    		PendingIntent pi = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0); //创建PendingIntent
    		
    		//参数说明:http://www.eoeandroid.com/blog-119358-2995.html
    		alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+30000, pi); //设置闹钟,当前时间就唤醒
    		Toast.makeText(MainActivity.this, "闹钟设置成功", Toast.LENGTH_LONG).show();//提示用户
    		}
    		},
    		cal.get(Calendar.HOUR_OF_DAY),
    		cal.get(Calendar.MINUTE),
    		true);
    
    		break;
    		}
    		
    		Log.e("AndroidBWL", "onCreateDialog end...");
    		return dialog;
    	}
    
    
    	@Override
    	protected void onResume() {
    		super.onResume();
    		Cursor cursor = db.query("tb_bwl", new String[]{"id as _id","title","content","noticeDate","noticeTime"}, null, null, null, null,null);
    		adapter.changeCursor(cursor);
    	}
    	
    	
    	
    	
    	
    
    }
    


    添加activity

    AddBwlActivity.java

    package com.cjq.androidbwl;
    
    import java.util.Calendar;
    import java.util.Date;
    
    import android.app.Activity;
    import android.app.AlarmManager;
    import android.app.DatePickerDialog;
    import android.app.PendingIntent;
    import android.app.DatePickerDialog.OnDateSetListener;
    import android.app.Dialog;
    import android.app.TimePickerDialog;
    import android.app.TimePickerDialog.OnTimeSetListener;
    import android.content.ContentValues;
    import android.content.Context;
    import android.content.Intent;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.DatePicker;
    import android.widget.EditText;
    import android.widget.TimePicker;
    import android.widget.Toast;
    
    /**
     * 
     * @author cjianquan
     * @since 2014年10月31日
     */
    public class AddBwlActivity extends Activity {
    	
    	private EditText etDate = null,etTime=null,etTitle=null,etContent=null;
    	private Button btnSave = null;
    	
    	static final int DATE_DIALOG_ID = 0;
    	static final int TIME_DIALOG_ID = 1;
    	
    	private DbHelper dbhelper;
    	
    	 Bundle bundle;  
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.add_bwl);
    		
    		dbhelper = new DbHelper(this, "db_bwl", null, 1);
    		
    		etTitle = (EditText)findViewById(R.id.etTitle);
    		etContent = (EditText)findViewById(R.id.etContent);
    		
    		etDate = (EditText)findViewById(R.id.etDate);
    		etDate.setOnClickListener(new View.OnClickListener() {
    			
    			@Override
    			public void onClick(View view) {
    				//并会调用 onCreateDialog(int)回调函数来请求一个Dialog  
    				showDialog(DATE_DIALOG_ID);
    				
    			}
    		});
    		
    		etTime = (EditText)findViewById(R.id.etTime);
    		etTime.setOnClickListener(new View.OnClickListener() {
    			
    			@Override
    			public void onClick(View view) {
    				//并会调用 onCreateDialog(int)回调函数来请求一个Dialog  
    				showDialog(TIME_DIALOG_ID);
    				
    			}
    		});
    		
    		
    		btnSave = (Button)findViewById(R.id.btnSave);
    		btnSave.setOnClickListener(new View.OnClickListener() {
    			
    			@Override
    			public void onClick(View view) {
    				
    				ContentValues value = new ContentValues();  
    				
    				String title = etTitle.getText().toString();
    				String content = etContent.getText().toString();
    				String noticeDate = etDate.getText().toString();
    				String noticeTime = etTime.getText().toString();
    				
    				value.put("title", title);
    				value.put("content", content);
    				value.put("noticeDate", noticeDate);
    				value.put("noticeTime", noticeTime);
    				
    				
    				SQLiteDatabase db = dbhelper.getWritableDatabase();
    				
    				long id = 0;
    				
    				long status = 0;
    				if(bundle!=null){
    					id = bundle.getLong("id");
    					 status = db.update("tb_bwl", value, "id=?", new String[]{bundle.getLong("id")+""});  
    				}else{
    					status = db.insert("tb_bwl", null, value); 
    					id = status;
    				}
    				
    				if(status!=-1){
    					setAlarm(id);
    					Toast.makeText(AddBwlActivity.this, "保存成功", Toast.LENGTH_LONG).show();  
                    }else{  
                        Toast.makeText(AddBwlActivity.this, "保存失败", Toast.LENGTH_LONG).show();  
                    }  
    			}
    		});
    		
    		//获取上一个activity的传值
    		bundle = this.getIntent().getExtras();
    		if(bundle!=null){
    			etDate.setText(bundle.getString("noticeDate"));
    			etTime.setText(bundle.getString("noticeTime"));
    			etTitle.setText(bundle.getString("title"));
    			etContent.setText(bundle.getString("content"));
    		}
    		
    	}
    	
    	
    	
    	private OnDateSetListener dateSetListener = new OnDateSetListener() {
    		
    		@Override
    		public void onDateSet(DatePicker datePicker, int year, int month, int day) {
    			
    			StringBuilder dateStr = new StringBuilder();
    			dateStr.append(year).append("-")
    			.append(month+1).append("-")
    			.append(day);
    			
    			etDate.setText(dateStr.toString());
    		}
    	};
    	
    	
    	private OnTimeSetListener timeSetListener = new OnTimeSetListener() {
    		
    		@Override
    		public void onTimeSet(TimePicker timePicker, int hour, int minute) {
    			
    			
    			StringBuilder timeStr = new StringBuilder();
    			timeStr.append(hour).append(":")
    			.append(minute);
    			
    			etTime.setText(timeStr.toString());
    		}
    	};
    	
    	/** 
         * 当Activity调用showDialog函数时会触发该函数的调用
         */  
    	protected Dialog onCreateDialog(int id){
    		Calendar cal = Calendar.getInstance();
    		cal.setTime(new Date());
    		switch(id){
    		case DATE_DIALOG_ID:
    			DatePickerDialog dpd = new DatePickerDialog(this,dateSetListener, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH));
    			dpd.setCancelable(true);
    			dpd.setTitle("选择日期");
    			dpd.show();
    			break;
    		case TIME_DIALOG_ID:
    			TimePickerDialog tpd = new TimePickerDialog(this, timeSetListener, cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), true);
    			tpd.setCancelable(true);
    			tpd.setTitle("选择时间");
    			tpd.show();
    			break;
    		default:
    				break;
    		}
    		return null;
    	}
    	
    	private AlarmManager alarmManager=null;
    	
    	
    	public void setAlarm(long id){
    		
    		Log.e("AndroidBWL", "setAlarm start...");
    		
    		
    		String noticeDate = etDate.getText().toString();
    		String noticeTime = etTime.getText().toString();
    		
    		Calendar calendar = Calendar.getInstance();
    		
    		calendar.set(Integer.parseInt(noticeDate.split("-")[0]), 
    				Integer.parseInt(noticeDate.split("-")[1])-1, 
    				Integer.parseInt(noticeDate.split("-")[2]), 
    				Integer.parseInt(noticeTime.split(":")[0]), 
    				Integer.parseInt(noticeTime.split(":")[1]));
    		
    		Log.e("AndroidBWL", ""+(calendar.getTimeInMillis()-System.currentTimeMillis()));
    		
    		
    		
    		alarmManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
    		
    		
    		Intent intent = new Intent(AddBwlActivity.this, AlarmReceiver.class); //创建Intent对象
    		
    		Bundle bundle = new Bundle();
    		bundle.putLong("id", id);
    		bundle.putString("title", etTitle.getText().toString());
    		bundle.putString("content", etContent.getText().toString());
    		bundle.putString("noticeDate", etDate.getText().toString());
    		bundle.putString("noticeTime", etTime.getText().toString());
    		
    		intent.putExtras(bundle);
    		
    		//PendingIntent.getBroadcast intent 数据不更新。
    		//传不同的 action 来解决这个问题
    		intent.setAction("ALARM_ACTION"+calendar.getTimeInMillis());
    		
    		PendingIntent pi = PendingIntent.getBroadcast(AddBwlActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); //创建PendingIntent
    		
    		//参数说明:http://www.eoeandroid.com/blog-119358-2995.html
    		alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis()+5000, pi); //设置闹钟,当前时间就唤醒
    		
    		Log.e("AndroidBWL", "setAlarm end...");
    		
    	}
    
    }
    

    提醒的广播接收:

    AlarmReceiver.java

    package com.cjq.androidbwl;
    
    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    
    /**
     * 
     * @author cjianquan
     * @since 2014年10月29日
     */
    public class AlarmReceiver extends BroadcastReceiver {
    	
    	 private Intent mIntent = null;  
    	 private PendingIntent mPendingIntent = null;  
    	 private Notification mNotification = null;  
    	 private NotificationManager mNotificationManager = null;  
    
    
    	@Override
    	public void onReceive(Context context, Intent intent) {
    		
    		
    		Log.e("AndroidBWL", "AlarmReceiver:onReceive");
    		
    		mIntent = intent;
    		
    		Bundle bundle = mIntent.getExtras();
    		
    		mNotificationManager = (NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);  
    //        mIntent = new Intent(context,AddBwlActivity.class);  
            mIntent.setClass(context,AddBwlActivity.class);
            
            mPendingIntent = PendingIntent.getActivity(context, 0, mIntent, 0);  
            mNotification = new Notification();  
            mNotification.icon = R.drawable.alarm;  
            mNotification.tickerText="备忘录";
            //设置默认声音、默认振动、和默认闪光灯
            mNotification.defaults = Notification.DEFAULT_ALL;
            //点击通知后自动取消
            mNotification.flags |= Notification.FLAG_AUTO_CANCEL;
            mNotification.setLatestEventInfo(context, bundle.getString("title"), bundle.getString("content"), mPendingIntent);  
            mNotificationManager.notify(1,mNotification); 
    		
    	}
    
    }
    

    AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.cjq.androidbwl"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="14"
            android:targetSdkVersion="14" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/alarm"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.cjq.androidbwl.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name="com.cjq.androidbwl.AlarmActivity" />
            <activity android:name="com.cjq.androidbwl.NotifitionActivity" />
            <activity android:name="com.cjq.androidbwl.AddBwlActivity" />
            <receiver android:name="com.cjq.androidbwl.AlarmReceiver" android:process=":remote"></receiver>
        </application>
        
        <!-- 添加操作振动器的权限-->
        <uses-permission android:name="android.permission.VIBRATE"></uses-permission>
        <!-- 添加操作闪光灯的权限 -->
        <uses-permission android:name="android.permission.FLASHLIGHT"></uses-permission>
    
    </manifest>
    

    布局文件:

    activity_main.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_gravity="right"
        tools:context=".MainActivity" >
        
        <ImageButton android:id="@+id/btnAdd"
            android:paddingLeft="10dp"
            android:alpha="70"
            android:layout_width="wrap_content" 
    		android:layout_height="wrap_content" 
    		android:src="@drawable/add" />
        
        <ListView android:id="@+id/lv_bwlList"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            
        </ListView>
    
    
    </LinearLayout>

    list_item_bwl.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        
        <LinearLayout android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:width="0dp"
            android:orientation="horizontal"
            android:gravity="right">
            
            <TextView
            android:id="@+id/title"
            android:width="0dp"
            android:layout_weight="1.0"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp" />
            
            <TextView android:id="@+id/noticeDate"  
            android:textSize="10sp"
            android:width="0dp"
            android:layout_weight="3.0"
            android:layout_width="match_parent"  
            android:layout_height="match_parent"/>  
            
            <TextView android:id="@+id/noticeTime" 
            android:textSize="10sp" 
            android:width="0dp"
            android:layout_weight="3.0"
            android:layout_width="match_parent"  
            android:layout_height="match_parent"/>
            
        </LinearLayout>
        
            <TextView android:id="@+id/content"
            android:layout_width="match_parent"  
            android:layout_height="match_parent"/>
            
        
    
    </LinearLayout>
    

    add_bwl.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:textSize="25sp"
        android:orientation="vertical" >
        <TextView android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/title"/>
        <EditText android:id="@+id/etTitle"
            android:hint="请输入标题"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        
        <TextView android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="日期"/>
        
        <EditText android:id="@+id/etDate"
            android:hint="请选择日期"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        
        <TextView android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="时间"/>
        <EditText android:id="@+id/etTime"
            android:hint="请选择时间"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        
        <TextView android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/content"/>
        <EditText android:id="@+id/etContent"
            android:hint="请输入内容"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        
        
        
        
        <Button android:id="@+id/btnSave"
            android:text="保存"
            android:textSize="40sp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    
    </LinearLayout>
    

    设置全局背景图片:

    styles.xml

    <resources xmlns:android="http://schemas.android.com/apk/res/android">
    
        <!--
            Base application theme, dependent on API level. This theme is replaced
            by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
        -->
        <style name="AppBaseTheme" parent="android:Theme.Light">
            <!--
                Theme customizations available in newer API levels can go in
                res/values-vXX/styles.xml, while customizations related to
                backward-compatibility can go here.
            -->
        </style>
    
        <!-- Application theme. -->
        <style name="AppTheme" parent="AppBaseTheme">
            <!-- All customizations that are NOT specific to a particular API-level can go here. -->
            <item name="android:windowBackground">@drawable/shade</item>
        </style>
        
    
    </resources>
    



    展开全文
  • android 备忘录

    2012-04-23 15:33:08
    android备忘录实现了 添加,删除,修改以及 模糊查询,按钮主要Menu来控制的,另外实现了闹钟功能,可以修改闹钟时间以及关闭闹钟功能。另外要注意的是,我做LIstView的时候,没有重写适配器,所以点击ListView...
  • Android备忘录模式简单Demo,实现通过memoto备忘录实体,实现游戏存档和读档的功能简单模拟,便于理解备忘录模式.同步博文:http://blog.csdn.net/qq_28690547/article/details/50708415
  • android 备忘录小程序

    2018-05-06 10:18:01
    压缩包包含整个备忘录程序工程,实现了侧滑菜单删除和置顶功能,备忘录内容除了文字内容还添加了照相和选择相片的功能。
  • Android备忘录

    2015-01-28 15:06:41
    在网上找到的一个实例:一个基于安卓的带事件提醒的备忘录小程序源码,该资源包含一个简易备忘录的全部代码,能实现基本功能:添加、搜索、删除、编辑事项,闹铃提醒,分享内容等。本源码默认编码GBK编译版本4.4.2

    在网上找到的一个实例:一个基于安卓的带事件提醒的备忘录小程序源码,该资源包含一个简易备忘录的全部代码,能实现基本功能:添加、搜索、删除、编辑事项,闹铃提醒,分享内容等。本源码默认编码GBK编译版本4.4.2

    下载地址:http://www.devstore.cn/code/info/622.html

    运行截图:

    展开全文
  • Android课程设计 Android手机端的小备忘录的代码实现
  • Android备忘录1

    2016-07-09 23:12:21
    Android常用备忘 TextView组件可以实现带图标 很文字 Listview添加到碎片中 当item很少时,在碎片中创建视图的时候会重复加载list item 1 下面用来处理一个自定义对象Tb_outgoods的集合List(特殊的数组)如何把...
  • 最近做android大作业 我打算做一个备忘录 但是老师要求要实现云备份功能 我理解的云备份就是备份到云端嘛 然后及时你程序卸载了 云端的数据还可以保留 首先 肯定要连接本地sqlite嘛 然后备份 按道理应该提交到...
  • Android 手机备忘 录的设计与实现开 题报告 1 2020 年 4 月 19 日 邵阳学院毕业设计论文任务书 年级专业 级通信工程 学生姓名 学 号 课题名称 Android 手机备忘录的设计与实现 设计 (论文 ) 11 月 15 日至 06 月 10 ...
  • Android Studio 备忘录(简单)实现

    千次阅读 热门讨论 2020-07-01 16:39:48
    Android Studio 环境下,备忘录(简单)的实现,功能有:添加,单个查询,删除全部内容,并可获取当前时间存储在SqlLite中。所用到的显示控件为 ScrollView,EditText,TextView,ImageButton. 图片展示 首页 添加页 ...
  • Android 备忘录+闹钟

    热门讨论 2012-03-25 18:06:39
    使用SQLite 数据库,实现登陆验证,增删改查
  • Android备忘录系统的开发

    热门讨论 2011-09-19 17:15:13
    实习做Android开发时经常参考的一个实例,很有代表性,里面有完整的功能实现和详细的注解,对初学Android开发者具有很高的参考价值。
  • 计算机科学与技术查业暑拥生产马报 题目:基于 android平台的手机备忘录程序设计与实现 小组成员 基本功能及要求 通过安装备忘录,防止手机用户遗忘某个时 勺重要工 进行记录并在特定时间通过声音 字或振动提醒用户 ...
  • 备忘录android

    2018-09-13 16:03:18
    对于大多数人来说,随身带个小本子来记录一些即将要处理的事情是很有必要的,从而出现了备忘录。有了随身备忘录,就可以将自己的...他们能够便捷的通过手机备忘录实现重要事情的记录与提醒,省去了随身携带纸笔的麻烦
  • android开发备忘录

    万次阅读 多人点赞 2015-04-24 21:45:34
    程序描述:实现备忘录的设置和提醒,当运行软件时,在主界面可以设定备忘录内容,单击"设置闹钟"按钮设置提醒的时间。每设置一个备忘录,会在按钮下方记录所设定的备忘录,方便用户查看。当设定备忘录的时间到时,在...
  • 题 目基于android平台的手机备忘录程序设计与实现 小组成员 通过安装备忘录 防止手机用户遗忘某个时 间的重要工作进行记录并在特定时间通过声音 文字或振动提醒用户 主要模块 备忘录数据存储 列表浏览 数据维护 定时...
  • Android备忘录 -- ListView

    千次阅读 2017-05-20 12:48:56
    Android 中最常用的控件之一,几乎所有的应用程序都会用到它。 当我们的程序中有大量的数据需要展示的时候,就可以借助 ListView 来实现。 下面以水果展示程序为例介绍。 1. 在活动布局文件中加入ListView控件 ...
  • 基于android备忘录

    2017-12-23 15:51:37
    基于android实现备忘信息分组,删除,更新备忘信息,备忘信息提醒等功能
  • Android日历备忘录案例

    2021-01-08 18:29:01
    该日历备忘录app实现了日历查看,添加备忘录,闹钟提醒,删除备忘录等功能,适合新手学习。 开发语言: java 技术框架: mvc 开发工具: AndroidStudio2.2,新手最好使用此版本搭建,不同版本修改配置比较繁琐 ...
  • 三种动画中实现最简单的,由于是纯加载图片实现动画,所以会消耗更多内存,也更容易产生OOM,所以使用图片越小越好。 通常用在一些简单的Loading图标,下拉上拉图标等。 作用于View(Button,TextView...),但不能...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 211
精华内容 84
关键字:

android备忘录实现