首页 > 其他分享 >(十日冲刺2)

(十日冲刺2)

时间:2024-06-19 23:44:09浏览次数:17  
标签:十日 menu private return MODE new import 冲刺

package com.example.juanzeng;

import android.app.SearchManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SearchView;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.example.juanzeng.adapter.MyAdapter;
import com.example.juanzeng.bean.Note;
import com.example.juanzeng.util.SpfUtil;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.android.material.floatingactionbutton.FloatingActionButton;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class MainActivity extends AppCompatActivity {

解释    
private RecyclerView mRecyclerView;
private FloatingActionButton mBtnAdd;
private List<Note> mNotes;
private MyAdapter mMyAdapter;

private NoteDbOpenHelper mNoteDbOpenHelper;

public static final int MODE_LINEAR = 0;
public static final int MODE_GRID = 1;

public static final String KEY_LAYOUT_MODE = "key_layout_mode";

private int currentListLayoutMode = MODE_LINEAR;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
    initData();
    initEvent();

    BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
    bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()) {
                case R.id.action_home:
                    // 处理首页逻辑
                    return true;
                case R.id.action_search:
                    // 处理搜索逻辑
                    return true;
                case R.id.action_profile:
                    // 处理个人中心逻辑
                    return true;
            }
            return false;
        }
    });

}

@Override
protected void onResume() {
    super.onResume();
    refreshDataFromDb();
    setListLayout();
}

private void setListLayout() {
    currentListLayoutMode = SpfUtil.getIntWithDefault(this, KEY_LAYOUT_MODE, MODE_LINEAR);
    if (currentListLayoutMode == MODE_LINEAR) {
        setToLinearList();
    }else{
        setToGridList();
    }
}

private void refreshDataFromDb() {
    mNotes = getDataFromDB();
    mMyAdapter.refreshData(mNotes);
}

private void initEvent() {
    mMyAdapter = new MyAdapter(this, mNotes);
    mRecyclerView.setAdapter(mMyAdapter);

// LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
// mRecyclerView.setLayoutManager(linearLayoutManager);
// mMyAdapter.setViewType(MyAdapter.TYPE_LINEAR_LAYOUT);
setListLayout();

解释    
}

private void initData() {
    mNotes = new ArrayList<>();
    mNoteDbOpenHelper = new NoteDbOpenHelper(this);

//
// for (int i = 0; i < 30; i++) {
// Note note = new Note();
// note.setTitle("这是标题"+i);
// note.setContent("这是内容"+i);
// note.setCreatedTime(getCurrentTimeFormat());
// mNotes.add(note);
// }

// mNotes = getDataFromDB();

解释    
}

private List<Note> getDataFromDB() {
    return mNoteDbOpenHelper.queryAllFromDb();
}

private String getCurrentTimeFormat() {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY年MM月dd HH:mm:ss");
    Date date = new Date();
    return simpleDateFormat.format(date);
}

private void initView() {
    mRecyclerView = findViewById(R.id.rlv);
}


public void add(View view) {
    Intent intent = new Intent(this, AddActivity.class);
    startActivity(intent);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            mNotes = mNoteDbOpenHelper.queryFromDbByTitle(newText);
            mMyAdapter.refreshData(mNotes);
            return true;
        }
    });
    return super.onCreateOptionsMenu(menu);
}


@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    item.setChecked(true);

    switch (item.getItemId()) {

        case R.id.menu_linear:
            setToLinearList();
            currentListLayoutMode = MODE_LINEAR;
            SpfUtil.saveInt(this,KEY_LAYOUT_MODE,MODE_LINEAR);

            return true;
        case R.id.menu_grid:

            setToGridList();
            currentListLayoutMode = MODE_GRID;
            SpfUtil.saveInt(this,KEY_LAYOUT_MODE,MODE_GRID);
            return true;
        default:
            return super.onOptionsItemSelected(item);

    }
}

private void setToLinearList() {
    RecyclerView.LayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
    mRecyclerView.setLayoutManager(linearLayoutManager);
    mMyAdapter.setViewType(MyAdapter.TYPE_LINEAR_LAYOUT);
    mMyAdapter.notifyDataSetChanged();
}


private void setToGridList() {
    RecyclerView.LayoutManager gridLayoutManager = new GridLayoutManager(this, 2);
    mRecyclerView.setLayoutManager(gridLayoutManager);
    mMyAdapter.setViewType(MyAdapter.TYPE_GRID_LAYOUT);
    mMyAdapter.notifyDataSetChanged();
}

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    if (currentListLayoutMode == MODE_LINEAR) {
        MenuItem item = menu.findItem(R.id.menu_linear);
        item.setChecked(true);
    } else {
        menu.findItem(R.id.menu_grid).setChecked(true);
    }
    return super.onPrepareOptionsMenu(menu);
}

标签:十日,menu,private,return,MODE,new,import,冲刺
From: https://www.cnblogs.com/guozi6/p/18257796

相关文章

  • 团队冲刺16
    在进行成语填空游戏开发的冲刺记录第一次反思时,可以从以下几个方面来进行结构化的思考和总结:项目进度回顾目标设定:回顾最初设定的开发目标,包括功能点、用户体验预期、时间节点等。实际进展:对比实际完成的开发任务,分析完成情况与目标之间的差距。技术实现评估代码质量:检查......
  • 团队冲刺17
    在准备展示成语填空游戏的开发冲刺记录之前,我们需要确保所有的关键步骤和成果都已经整理妥当,以便向观众或利益相关者清楚地传达我们的工作进展和成就。以下是展示前的准备工作步骤:成果梳理:汇总所有冲刺期间的开发成果,包括新功能、改进的功能、修复的bug等。确认所有成语填空......
  • 团队冲刺4
    成语接龙游戏是一种考验玩家词汇量和对成语掌握程度的传统文字游戏。在这个游戏中,玩家需要根据前一个成语的最后一个字,找到一个新的成语作为接龙。为了设计一个成语接龙游戏的冲刺记录原型,我们需要考虑以下几个关键要素:游戏界面:开始界面:包含游戏名称、简单的游戏说明、开始按......
  • 团队冲刺5
    1.建立成语库首先,需要建立一个成语库,这是整个游戏的基础数据。成语库中需要包含所有的成语及其释义和拼音,并按照一定的顺序排列,例如按常用程度或字母顺序。可以通过爬虫技术从网络上抓取成语数据,或者手动输入成语数据。 2.设计数据库表结构接下来,需要设计数据库表结构来存......
  • 团队冲刺6
    成语接龙游戏的冲刺记录后端开发涉及到创建一个服务器端应用程序,用于存储和管理玩家的游戏数据,特别是他们在成语接龙游戏中创造的记录。以下是进行这项开发工作的一些关键步骤和考虑因素:1.设计数据库模型玩家信息:包括玩家ID、用户名、密码哈希、注册日期等。游戏记录:每条记录......
  • 团队冲刺7
    在探讨成语接龙游戏的前端开发之前,可以先进行一次成语接龙的示例,以此作为讨论的起点。假设我们的起始成语是“一马当先”,接下来的成语可以是“先发制人”,然后是“人山人海”,接着是“海阔天空”,依此类推。这样的游戏不仅考验参与者的词汇量,还锻炼了他们的反应速度和思维敏捷性。现......
  • 团队冲刺8
    成语接龙游戏的冲刺记录测试计划制定,可以分为以下几个步骤:目标设定:首先,明确测试的目标,比如是为了打破个人记录,还是团队间的竞争,或者是为了提高成语词汇量。现状分析:回顾过去的成语接龙游戏记录,分析成功和失败的原因,找出可以改进的地方。资源准备:准备必要的资源,如成语词典......
  • 团队冲刺1
    项目启动步骤:确定目标和规则:明确项目的最终目标,比如设定一个接龙的轮数目标或是在限定时间内完成尽可能多的接龙。规定游戏的规则,包括如何开始、如何接龙、是否允许谐音字等。组建团队:招募对成语感兴趣或有丰富成语知识的人员参与。分工合作,比如有人负责记录,有人负责......
  • 团队冲刺2
    需求分析概述成语接龙游戏冲刺记录的需求分析旨在定义游戏的功能、性能、用户界面和交互设计等方面,以确保游戏的开发满足目标用户群体的需求和期望。以下是对成语接龙游戏冲刺记录需求的详细分析:功能性需求用户注册与登录允许用户通过邮箱或社交账号注册。提供安全的登录......
  • 团队冲刺3
    成语接龙游戏冲刺记录技术选型成语接龙游戏是一种结合了娱乐和教育功能的游戏,它不仅能够锻炼玩家的思维敏捷性和语言表达能力,还能增加词汇量和知识储备。在技术选型方面,为了实现一个高效、稳定且易于维护的成语接龙游戏平台,可以考虑以下几个关键点:前端技术:可以选择React或Vue.......