Android:实现安卓小程序-记事本(备忘录)的开发,教你如何增加拿到BAT大厂offer几率

本文介绍了如何在Android平台上开发一款小程序-记事本,涵盖内容包括自定义适配器、记事本背景色设置、闹钟功能的实现以及高级搜索功能的集成。通过详细步骤和代码示例,帮助开发者提升技能,增加获得BAT大厂offer的机会。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public MyBaseAdapter(Context context, List data) {

this.context = context;

this.data = data;

}

@Override

public Object getItem(int i) {

return null;

}

@Override

public long getItemId(int i) {

return 0;

}

@Override

public int getCount() {

if(data==null) return 0;

return data.size();

}

}

接着在编写NoteAdapter类继承上类,初始化view, 将Note条目的各项信息展示出来,其中还自定义了一个viewHolder类,方便对xml文件中的各项组件进行绑定编辑。

public class NoteAdapter extends MyBaseAdapter {

public NoteAdapter(Context context, List data) {

super(context, data);

}

@Override

public View getView(int i, View view, ViewGroup viewGroup) {

ViewHolder viewHolder;

if(view==null){

viewHolder=new ViewHolder();

LayoutInflater inflater = LayoutInflater.from(context);

view = inflater.inflate(R.layout.item_main_list, viewGroup, false);

viewHolder.tv_lv_month = (TextView) view.findViewById(R.id.tv_lv_month);

viewHolder.tv_lv_day= (TextView) view.findViewById(R.id.tv_lv_day);

viewHolder.tv_lv_title = (TextView) view.findViewById(R.id.tv_lv_title);

viewHolder.tv_lv_content = (TextView) view.findViewById(R.id.tv_lv_content);

viewHolder.layout = (LinearLayout) view.findViewById(R.id.Linelayout);

view.setTag(viewHolder);

}

else{

viewHolder = (ViewHolder) view.getTag();

}

viewHolder.tv_lv_month.setText(data.get(i).getUpdate_date().split(“-”)[1]);

viewHolder.tv_lv_day.setText(data.get(i).getUpdate_date().split(“-”)[2]);

viewHolder.tv_lv_title.setText(data.get(i).getTitle());

viewHolder.tv_lv_content.setText(data.get(i).getText());

if(data.get(i).getBackground()!=null){

viewHolder.layout.setBackgroundColor(Color.parseColor(data.get(i).getBackground()));

}

return view;

}

class ViewHolder{

TextView tv_lv_month;

TextView tv_lv_day;

TextView tv_lv_title;

TextView tv_lv_content;

LinearLayout layout;

}

}

3.5 记事本的背景色设置


进入到上述提到的编辑模式2中,也就是ContentActivity中,在其底部设置更改背景色功能。这里运用到了会话框的弹出AlertDialog。设置三种颜色。点击确认后,更改数据文件中相应记事条目Note的Background属性。接着进行调用onResume();使其重新载入数据文件中的记事条目得到背景色的更改。功能截图如下:

| 背景选项 | 设置成功 |

| — | — |

| 在这里插入图片描述 | 在这里插入图片描述 |

部分关键代码如下:

ivSettings.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

AlertDialog.Builder builder = new AlertDialog.Builder(ContentActivity.this);

builder.setIcon(R.drawable.fab_settings);

builder.setTitle(“选择一个背景色”);

// 指定下拉列表的显示数据

final String[] colors = {“护眼色”, “薰衣淡紫”, “粉粉粉”};

builder.setItems(colors, new DialogInterface.OnClickListener()

{

@Override

public void onClick(DialogInterface dialog, int which)

{

Toast.makeText(ContentActivity.this, “选择的背景色为:” + colors[which], Toast.LENGTH_SHORT).show();

switch (which){

case 0:

new NoteManager(mContext).updateBackground(title,“#C7EDCC”);

onResume();

break;

case 1:

new NoteManager(mContext).updateBackground(title,“#E6E6FA”);

onResume();

break;

case 2:

new NoteManager(mContext).update

Android开发一个可以存储数据的小型记事本应用,通常会使用SQLite作为本地数据库。以下是基本的步骤和技术: 1. **添加数据库依赖**: 首先,在build.gradle(Module: app)文件中添加SQLite支持: ```gradle implementation 'androidx.room:room-runtime:2.4.0' kapt 'androidx.room:room-compiler:2.4.0' ``` 2. **创建数据模型**: 定义一个Note类,代表你的记事本条目: ```kotlin data class Note(val title: String, val content: String) ``` 3. **创建数据库访问接口**: 使用Room库创建一个NoteDao接口: ```kotlin @Database(entities = [Note::class], version = 1) abstract class AppDatabase : RoomDatabase() { abstract fun noteDao(): NoteDao } interface NoteDao { @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun insert(note: Note) @Query("SELECT * FROM notes") suspend fun getAllNotes(): List<Note> } ``` 4. **存储和读取数据**: 在`MainActivity`中,初始化数据库并操作数据: ```kotlin class MainActivity : AppCompatActivity(), RoomDatabase.Callback { private lateinit var db: AppDatabase private val notesList: MutableList<Note> = mutableListOf() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) db = Room.databaseBuilder( applicationContext, AppDatabase::class.java, "notes_database" ).addCallback(this).build() loadNotes() } private suspend fun loadNotes() { notesList.addAll(db.noteDao().getAllNotes()) // 更新UI展示数据 } // ...其他按钮事件,比如保存时插入数据库 fun onSaveClick(view: View) { val note = Note(title, noteText.text.toString()) GlobalScope.launch { db.noteDao().insert(note) } } override fun onOpen(database: RoomDatabase) { // 数据库打开后的回调 } override fun onUpgrade(database: RoomDatabase, oldVersion: Int, newVersion: Int) { // 当升级数据库版本时的迁移逻辑 } } ``` 5. **清理和关闭数据库**: 在应用程序结束生命周期时,记得关闭数据库连接: ```kotlin override fun onDestroy() { super.onDestroy() db.close() } ``` 以上是一个基础的实现,实际应用中可能还需要处理更多细节,比如错误处理、异常情况等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值