返回顶部
首页 > 资讯 > 精选 >Android如何实现备忘录
  • 922
分享到

Android如何实现备忘录

2023-06-25 13:06:17 922人浏览 独家记忆
摘要

这篇文章主要介绍了Android如何实现备忘录,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档一、首先创建保存数

这篇文章主要介绍了Android如何实现备忘录,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

    一、首先创建保存数据的表

    Notedatabase,java

    package com.example.biji_1;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class NoteDatabase extends SQLiteOpenHelper {    public static final String TABLE_NAME ="notes";    public static final String CONTENT ="content";    public static final String ID ="_id";    public static final String TIME ="time";    public static final String MODE ="mode";    public  NoteDatabase(Context context){        super(context,"notes",null,1);    }    @Override    public void onCreate(SQLiteDatabase db){        db.execSQL("CREATE TABLE " + TABLE_NAME + "(" + ID                + " INTEGER PRIMARY KEY AUTOINCREMENT, "                + CONTENT + " TEXT NOT NULL, "                + TIME + " TEXT NOT NULL, "                + MODE + " INTEGER DEFAULT 1)");    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion,int newVersion){    }}

    二、主界面

    MainAcitivity.java

    public class MainActivity extends BaseActivity implements AdapterView.OnItemClickListener {    //test gittt    private NoteDatabase dbHelper;    private Context context = this;    final String TAG = "tag";    FloatingActionButton btn;    private ListView lv;    private NoteAdapter adapter;    private List<Note> noteList = new ArrayList<Note>();    private Toolbar myToolbar;    //弹出菜单    private PopupWindow popupWindow;    private PopupWindow popupCover;    private ViewGroup customView;    private ViewGroup coverView;    private LayoutInflater layoutInflater;    private RelativeLayout main;    private WindowManager wm;    private DisplayMetrics metrics;    private TextView setting_text;    private ImageView setting_image;    @Override    protected void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initPrefs();        btn = (FloatingActionButton) findViewById(R.id.fab);        lv = findViewById(R.id.lv);        myToolbar = findViewById(R.id.myToolbar);        adapter = new NoteAdapter(getApplicationContext(), noteList);        refreshListView();        lv.setAdapter(adapter);        setSupportActionBar(myToolbar);        getSupportActionBar().setHomeButtonEnabled(true);        getSupportActionBar().setDisplayHomeAsUpEnabled(true); //设置toolbar取代actionbar        initPopUpView();        myToolbar.setNavigationIcon(R.drawable.ic_baseline_menu_24);        myToolbar.setNavigationOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Log.d(TAG, "onClick: shit");                showPopUpView();            }        });        lv.setOnItemClickListener(this);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(MainActivity.this, EditActivity.class);                intent.putExtra("mode", 4);                startActivityForResult(intent, 0);            }        });    }    public void initPopUpView(){        layoutInflater = (LayoutInflater) MainActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        customView = (ViewGroup) layoutInflater.inflate(R.layout.setting_layout, null);        coverView = (ViewGroup) layoutInflater.inflate(R.layout.setting_cover, null);        main = findViewById(R.id.main_layout);        wm = getWindowManager();        metrics = new DisplayMetrics();        wm.getDefaultDisplay().getMetrics(metrics);    }    public void showPopUpView(){        int width = metrics.widthPixels;        int height = metrics.heightPixels;        popupCover = new PopupWindow(coverView, width, height, false);        popupWindow = new PopupWindow(customView, (int) (width * 0.7), height, true);        popupWindow.setBackgroundDrawable(new ColorDrawable(Color.WHITE));        //在主界面加载成功之后 显示弹出        findViewById(R.id.main_layout).post(new Runnable() {            @Override            public void run() {                popupCover.showAtLocation(main, Gravity.NO_GRAVITY, 0, 0);                popupWindow.showAtLocation(main, Gravity.NO_GRAVITY, 0, 0);                setting_image = customView.findViewById(R.id.setting_settings_image);                setting_text = customView.findViewById(R.id.setting_settings_text);                setting_image.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        startActivity(new Intent(MainActivity.this, UserSettingsActivity.class));                    }                });                setting_text.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        startActivity(new Intent(MainActivity.this, UserSettingsActivity.class));                    }                });                coverView.setOnTouchListener(new View.OnTouchListener() {                    @Override                    public boolean onTouch(View v, MotionEvent event) {                        popupWindow.dismiss();                        return true;                    }                });                popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {                    @Override                    public void onDismiss() {                        popupCover.dismiss();                        Log.d(TAG, "onDismiss: test");                    }                });            }        });    }    public void initPrefs(){        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext());        SharedPreferences.Editor editor = sharedPreferences.edit();        if (!sharedPreferences.contains("nightMode")) {            editor.putBoolean("nightMode", false);            editor.commit();        }    }    // 接受startActivityForResult的结果    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data){        int returnMode;        long note_Id;        returnMode = data.getExtras().getInt("mode", -1);        note_Id = data.getExtras().getLong("id", 0);        if (returnMode == 1) {  //update current note            String content = data.getExtras().getString("content");            String time = data.getExtras().getString("time");            int tag = data.getExtras().getInt("tag", 1);            Note newNote = new Note(content, time, tag);            newNote.setId(note_Id);            CRUD op = new CRUD(context);            op.open();            op.updateNote(newNote);            op.close();        } else if (returnMode == 0) {  // create new note            String content = data.getExtras().getString("content");            String time = data.getExtras().getString("time");            int tag = data.getExtras().getInt("tag", 1);            Note newNote = new Note(content, time, tag);            CRUD op = new CRUD(context);            op.open();            op.addNote(newNote);            op.close();        } else if (returnMode == 2) { // delete            Note curNote = new Note();            curNote.setId(note_Id);            CRUD op = new CRUD(context);            op.open();            op.removeNote(curNote);            op.close();        }        else{        }        refreshListView();        super.onActivityResult(requestCode, resultCode, data);    }  //判断笔记状态    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.main_menu, menu);        //search setting        MenuItem mSearch = menu.findItem(R.id.action_search);        SearchView mSearchView = (SearchView) mSearch.getActionView();        mSearchView.setQueryHint("请输入搜索内容");        mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {            @Override            public boolean onQueryTextSubmit(String query) {                return false;            }            @Override            public boolean onQueryTextChange(String newText) {                adapter.getFilter().filter(newText);                return false;            }        });        return super.onCreateOptionsMenu(menu);    }   //搜索    @Override    public boolean onOptionsItemSelected(MenuItem item){        switch (item.getItemId()){            case R.id.menu_clear:                new AlertDialog.Builder(MainActivity.this)                        .setMessage("删除全部吗?")                        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {                            @Override                            public void onClick(DialogInterface dialog, int which) {                                dbHelper = new NoteDatabase(context);                                SQLiteDatabase db = dbHelper.getWritableDatabase();                                db.delete("notes", null, null);                                db.execSQL("update sqlite_sequence set seq=0 where name='notes'");                                refreshListView();                            }                        }).setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        dialog.dismiss();                    }                }).create().show();                break;        }        return super.onOptionsItemSelected(item);    }  //主界面删除    public void refreshListView(){        CRUD op = new CRUD(context);        op.open();        // set adapter        if (noteList.size() > 0) noteList.clear();        noteList.addAll(op.getAllNotes());        op.close();        adapter.notifyDataSetChanged();    }  //刷新list    @Override    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {        switch (parent.getId()) {            case R.id.lv:                Note curNote = (Note) parent.getItemAtPosition(position);                Intent intent = new Intent(MainActivity.this, EditActivity.class);                intent.putExtra("content", curNote.getContent());                intent.putExtra("id", curNote.getId());                intent.putExtra("time", curNote.getTime());                intent.putExtra("mode", 3);     // MODE of 'click to edit'                intent.putExtra("tag", curNote.getTag());                startActivityForResult(intent, 1);      //collect data from edit                Log.d(TAG, "onItemClick: " + position);                break;        }    } //携带数据}

    2.1 activity_main.xml

    三、:EditActivity.java

    package com.example.biji_1;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.EditText;import androidx.appcompat.app.AlertDialog;import androidx.appcompat.widget.Toolbar;import java.text.SimpleDateFORMat;import java.util.Date;public class EditActivity extends BaseActivity {    EditText et;    private Toolbar myToolbar;    private String old_content = "";    private String old_time = "";    private int old_Tag = 1;    private long id = 0;    private int openMode = 0;    private int tag = 1;    public Intent intent = new Intent(); // message to be sent    private boolean taGChange = false;    private final String TAG = "tag";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.edit_layout);        myToolbar = findViewById(R.id.myToolbar);        setSupportActionBar(myToolbar);        getSupportActionBar().setHomeButtonEnabled(true);        getSupportActionBar().setDisplayHomeAsUpEnabled(true); //设置toolbar取代actionbar        myToolbar.setNavigationOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                autoSetMessage();                setResult(RESULT_OK, intent);                finish();            }        });        myToolbar.setNavigationOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                autoSetMessage();                setResult(RESULT_OK, intent);                finish();            }        });        et = findViewById(R.id.et_1);        Intent getIntent = getIntent();        openMode = getIntent.getIntExtra("mode", 0);        if (openMode == 3) {//打开已存在的note            id = getIntent.getLongExtra("id", 0);            old_content = getIntent.getStringExtra("content");            old_time = getIntent.getStringExtra("time");            old_Tag = getIntent.getIntExtra("tag", 1);            et.setText(old_content);            et.setSelection(old_content.length());            Log.d("TAG","打开");        }    }    //渲染菜单栏    @Override    public boolean onCreateOptionsMenu(Menu menu_1) {        getMenuInflater().inflate(R.menu.edit_menu,menu_1);        return super.onCreateOptionsMenu(menu_1);    }    @Override    public boolean onOptionsItemSelected(MenuItem item){        switch (item.getItemId()){            case R.id.delete:                new AlertDialog.Builder(EditActivity.this)                        .setMessage("删除吗?")                        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {                            @Override                            public void onClick(DialogInterface dialog, int which) {                                if (openMode == 4){ // new note                                    intent.putExtra("mode", -1);                                    setResult(RESULT_OK, intent);                                }                                else { // existing note                                    intent.putExtra("mode", 2);                                    intent.putExtra("id", id);                                    setResult(RESULT_OK, intent);                                }                                finish();                            }                        }).setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        dialog.dismiss();                    }                }).create().show();                break;        }        return super.onOptionsItemSelected(item);    }    public boolean onKeyDown(int keyCode, KeyEvent event){        if (keyCode == KeyEvent.KEYCODE_HOME){            return true;        }        else if (keyCode == KeyEvent.KEYCODE_BACK){            autoSetMessage();            setResult(RESULT_OK, intent);            finish();            return true;        }        return super.onKeyDown(keyCode, event);    }    public void autoSetMessage(){        if(openMode == 4){            if(et.getText().toString().length() == 0){                intent.putExtra("mode", -1); //nothing new happens.            }            else{                intent.putExtra("mode", 0); // new one note;                intent.putExtra("content", et.getText().toString());                intent.putExtra("time", dateToStr());                intent.putExtra("tag", tag);            }        }        else {            if (et.getText().toString().equals(old_content) && !tagChange)                intent.putExtra("mode", -1); // edit nothing            else {                intent.putExtra("mode", 1); //edit the content                intent.putExtra("content", et.getText().toString());                intent.putExtra("time", dateToStr());                intent.putExtra("id", id);                intent.putExtra("tag", tag);            }        }    }    public String dateToStr(){        Date date = new Date();        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        return simpleDateFormat.format(date);    }}

    3.1 edit_layout.xml

    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="Http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <androidx.appcompat.widget.Toolbar        android:id="@+id/myToolbar"        android:layout_width="match_parent"        android:layout_height="?attr/actionBarSize"        android:elevation="4dp"        app:titleTextColor="#FFEBCD"        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"        />    <EditText        android:id="@+id/et_1"        android:layout_width="match_parent"        android:layout_height="100dp"        android:gravity="top"        /></LinearLayout>

    四、对笔记进行增删查改

    CRUD.java

    package com.example.biji_1;import android.annotation.SuppressLint;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import java.util.ArrayList;import java.util.List;public class CRUD {    SQLiteOpenHelper dbHandler;    SQLiteDatabase db;    private static final String[] columns = {            NoteDatabase.ID,            NoteDatabase.CONTENT,            NoteDatabase.TIME,            NoteDatabase.MODE    };    public CRUD(Context context){        dbHandler = new NoteDatabase(context);    }    public void open(){        db = dbHandler.getWritableDatabase();    }    public void close(){        dbHandler.close();    }    //把note 加入到database里面    public Note addNote(Note note){        //add a note object to database        ContentValues contentValues = new ContentValues();        contentValues.put(NoteDatabase.CONTENT, note.getContent());        contentValues.put(NoteDatabase.TIME, note.getTime());        contentValues.put(NoteDatabase.MODE, note.getTag());        long insertId = db.insert(NoteDatabase.TABLE_NAME, null, contentValues);        note.setId(insertId);        return note;    }    public Note getNote(long id){        //get a note from database using cursor index        Cursor cursor = db.query(NoteDatabase.TABLE_NAME,columns,NoteDatabase.ID + "=?",                new String[]{String.valueOf(id)},null,null, null, null);        if (cursor != null) cursor.moveToFirst();        Note e = new Note(cursor.getString(1),cursor.getString(2), cursor.getInt(3));        return e;    }    @SuppressLint("Range")    public List<Note> getAllNotes(){        Cursor cursor = db.query(NoteDatabase.TABLE_NAME,columns,null,null,null, null, null);        List<Note> notes = new ArrayList<>();        if(cursor.getCount() > 0){            while(cursor.moveToNext()){                Note note = new Note();                note.setId(cursor.getLong(cursor.getColumnIndex(NoteDatabase.ID)));                note.setContent(cursor.getString(cursor.getColumnIndex(NoteDatabase.CONTENT)));                note.setTime(cursor.getString(cursor.getColumnIndex(NoteDatabase.TIME)));                note.setTag(cursor.getInt(cursor.getColumnIndex(NoteDatabase.MODE)));                notes.add(note);            }        }        return notes;    } //查找笔记    public int updateNote(Note note) {        //update the info of an existing note        ContentValues values = new ContentValues();        values.put(NoteDatabase.CONTENT, note.getContent());        values.put(NoteDatabase.TIME, note.getTime());        values.put(NoteDatabase.MODE, note.getTag());        // updating row        return db.update(NoteDatabase.TABLE_NAME, values,                NoteDatabase.ID + "=?",new String[] { String.valueOf(note.getId())});    } //更新笔记    public void removeNote(Note note) {        //remove a note according to ID value        db.delete(NoteDatabase.TABLE_NAME, NoteDatabase.ID + "=" + note.getId(), null);    }  //删除笔记}

    4.1 note_layout.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:paddingLeft="10dp"    android:paddingRight="10dp"    android:paddingTop="5dp"    android:paddingBottom="12dp"    android:orientation="vertical"    android:background="@drawable/note_shape">    <TextView        android:id="@+id/tv_content"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Content"        android:textSize="20dp"        android:textColor="#00F5FF"        android:singleLine="true"        />    <TextView        android:id="@+id/tv_time"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Time"        android:textSize="16dp"        android:textColor="#00F5FF"/></LinearLayout>

    五、演示效果

    5.1 登录界面

    Android如何实现备忘录

    哈哈界面随自己走各位别喷

    5.2笔记界面

    Android如何实现备忘录

    之前自己写的

    5.3 增加记录

    Android如何实现备忘录

    Android如何实现备忘录

    5.4删除记录

    Android如何实现备忘录

    在主界面那个删除是删除全部会提示你 然后你点击进去之后还有一个删除那条记录的删除键 这里就不做演示了

    5.5 查找记录

    Android如何实现备忘录

    哈哈
    ##5.6 改记录

    Android如何实现备忘录

    改之前

    Android如何实现备忘录

    改之后可以看到时间变化

    其它效果靠这样演示不出来,源码在下面可以自取

    感谢你能够认真阅读完这篇文章,希望小编分享的“Android如何实现备忘录”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

    --结束END--

    本文标题: Android如何实现备忘录

    本文链接: https://lsjlt.com/news/305028.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Android如何实现备忘录
      这篇文章主要介绍了Android如何实现备忘录,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档一、首先创建保存数...
      99+
      2023-06-25
    • android如何实现备忘录闹钟功能
      要实现备忘录闹钟功能,可以使用Android的AlarmManager和NotificationManager两个类。1. 首先,在...
      99+
      2023-08-29
      android
    • android怎么实现备忘录提醒
      要实现备忘录提醒功能,可以使用Android的AlarmManager类和NotificationManager类。以下是一个简单的...
      99+
      2023-08-29
      android
    • Android备忘录功能怎么实现
      要实现Android的备忘录功能,可以按照以下步骤进行:1. 创建一个新的Android项目。2. 在布局文件中,设计一个界面用于显...
      99+
      2023-08-29
      Android
    • JavaWeb开发实现备忘录
      本文实例为大家分享了JavaWeb开发实现备忘录的具体代码,供大家参考,具体内容如下 所用技术 HTML,CSS,JavaScript,Servlet,Tomcat 8.5.60,M...
      99+
      2024-04-02
    • VBS中是如何实现备忘录启动功能
      小编给大家分享一下VBS中是如何实现备忘录启动功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:msg = Array("...
      99+
      2023-06-08
    • 基于JavaScript如何实现HarmonyOS备忘录服务卡片
      这篇文章主要介绍“基于JavaScript如何实现HarmonyOS备忘录服务卡片”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于JavaScript如何实现HarmonyOS备忘录服务卡片”文章...
      99+
      2023-06-30
    • 案例:python中实现51备忘录
      1.添加Memo类,至少包含id,name,thing,date四个属性,date可以暂时使用字符串表示,比如‘1.2’,‘3.8’,暂时不用考虑时间相关模块 2.id属性为只读,其他属性可读写 3.添加MemoAdmin类,作为主体程序,...
      99+
      2023-01-31
      备忘录 案例 python
    • Android毕业设计备忘录APP
      目录1.系统需求分析1.1 系统功能及框图1.2 系统需求功能&说明1.3 该项目涉及到的技术点2.数据存储设计2.1 SharedPrefenrences/SQLite存储...
      99+
      2024-04-02
    • MySQL如何实现双向复制备忘
      这篇文章主要介绍了MySQL如何实现双向复制备忘,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。所谓双向复制实际上至分别配置主从复制。假设有两...
      99+
      2024-04-02
    • python代码实现备忘录案例讲解
      文件操作 TXT文件 读取txt文件 读取txt文件全部内容: def read_all(txt): ...: with open(txt,'r') as f: ...
      99+
      2024-04-02
    • 如何使用PHP实现微信小程序的备忘录功能?
      如何使用PHP实现微信小程序的备忘录功能?随着手机普及和便捷应用的增多,备忘录成为了我们日常生活中必不可少的工具之一。微信小程序作为一种快速、便捷的应用形式,也拥有着庞大的用户群体。如何在微信小程序中实现备忘录功能,成为了很多开发者关注的热...
      99+
      2023-10-27
      PHP实现微信小程序备忘录
    • Win10如何在桌面添加备忘录
      这篇“Win10如何在桌面添加备忘录”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Win10如何在桌面添加备忘录”文章吧。具...
      99+
      2023-06-27
    • win11如何设置备忘录悬浮窗
      在Windows 11中,设置备忘录悬浮窗可以通过以下步骤进行:1. 打开“开始”菜单,点击“设置”图标(齿轮形状)打开设置页面。2...
      99+
      2023-09-11
      win11
    • 基于JavaScript实现HarmonyOS备忘录服务卡片
      目录一、前言二、实现效果三、创建工程四、生成服务卡片五、调试预览一、前言 HarmonyOS发布,服务卡片成为了亮点之一。那么除了开发应用,服务卡片也成了必学的知识。备忘录是现在每台...
      99+
      2024-04-02
    • C++ 函数的递归实现:如何使用备忘录技术优化递归?
      优化递归的备忘录技术:使用备忘录存储已计算结果,避免重复计算。在 c++++ 中使用 unordered_map 作为备忘录,在计算前检查是否存在结果。存储计算结果后返回,提高遍历目录等...
      99+
      2024-04-22
      递归 备忘录 c++
    • Python中怎么实现一个微信提醒备忘录
      Python中怎么实现一个微信提醒备忘录,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1任何的记录与提取1).任务记录为了便于爬取,推荐使用网页版的在线记事本,现在这种工具...
      99+
      2023-06-16
    • Android如何实现录音功能
      这篇文章给大家分享的是有关Android如何实现录音功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。本文介绍了Android实现录音的实例代码(MediaRecorder),分享给大家,具体如下:Android...
      99+
      2023-05-30
      android
    • android登录功能如何实现
      Android登录功能可以通过以下步骤实现:1. 创建登录界面:创建一个登录界面的布局文件,包括用户名和密码输入框、登录按钮等组件。...
      99+
      2023-08-09
      android
    • C#实战之备忘录的制作详解
      目录1.概述2.内容详述3.前台代码4.效果演示1.概述 前几天群里有人问如何制作备忘录,感觉这样一个小实例挺适合新手们入门学习使用,所以就抽空做了出来。界面如下图 这个备忘录主要...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作