团队冲刺第二天

王子炎
接着上次的项目结构,已近完成了第一部的实现
能够展示总的结构,并能够进行拖拽移动操作,但是跟最终树结构的展示不是同一个界面,如下:
这个是能够进行拖拽进行改变树结构操作的界面:

而这是另一个展示结构的

也就是说现在并不能在展示界面上直接进行拖拽操作
以后再进一步改进吧

最后,说一下期间遇到的问题吧
就是在进行树结构的遍历的时候,出
王皓扬昨天成就
android端的主界面设计
今天任务:
导航抽屉菜单
模块化功能展示
职级体系表格
响应式交互设计
具体代码如下:
package com.example.hrms.activities;

import android.os.Bundle;
import android.view.MenuItem;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.hrms.R;
import com.example.hrms.adapters.ModuleAdapter;
import com.example.hrms.models.Module;
import com.google.android.material.navigation.NavigationView;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {

private DrawerLayout drawerLayout;
private ModuleAdapter moduleAdapter;

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

// 初始化抽屉导航
drawerLayout = findViewById(R.id.drawer_layout);
NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);

// 初始化模块列表
RecyclerView recyclerView = findViewById(R.id.module_recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
moduleAdapter = new ModuleAdapter(loadModules());
recyclerView.setAdapter(moduleAdapter);

}

private List loadModules() {
List modules = new ArrayList<>();
modules.add(new Module("组织架构管理", "企业管理+组织架构+部门+编制", "树形组织编辑、编制预警", true));
modules.add(new Module("职位职级体系", "职位管理+职级管理", "职级薪资关联设置", false));
modules.add(new Module("员工入职发展", "入职+新人成长+转正", "入职引导、转正自动化", true));
modules.add(new Module("员工异动管理", "调岗+离职", "工作交接清单", false));
modules.add(new Module("合同全生命周期", "合同管理+台账", "到期自动提醒", false));
return modules;
}

@Override
public boolean onNavigationItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.nav_org:
startActivity(new Intent(this, OrganizationActivity.class));
break;
case R.id.nav_position:
startActivity(new Intent(this, PositionLevelActivity.class));
break;
}
drawerLayout.closeDrawer(GravityCompat.START);
return true;
}
}
package com.example.hrms.adapters;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.example.hrms.R;
import com.example.hrms.models.Module;
import java.util.List;

public class ModuleAdapter extends RecyclerView.Adapter<ModuleAdapter.ModuleViewHolder> {

private final List moduleList;

public ModuleAdapter(List moduleList) {
this.moduleList = moduleList;
}

@NonNull
@Override
public ModuleViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_module, parent, false);
return new ModuleViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull ModuleViewHolder holder, int position) {
Module module = moduleList.get(position);
holder.name.setText(module.getName());
holder.description.setText(module.getCoreFeatures());
}

@Override
public int getItemCount() {
return moduleList.size();
}

static class ModuleViewHolder extends RecyclerView.ViewHolder {
TextView name, description;

public ModuleViewHolder(@NonNull View itemView) {
    super(itemView);
    name = itemView.findViewById(R.id.module_name);
    description = itemView.findViewById(R.id.module_description);
}

}
}
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:title="人力资源管理系统"/>
</com.google.android.material.appbar.AppBarLayout>

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/module_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="8dp"/>

<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/drawer_menu"/>
</androidx.drawerlayout.widget.DrawerLayout>

今天遇到的困难:在编写适配器时报错无法解析R符号,原因是XML 文件有错误,在检查了布局文件后发现了问题在于Can't download Android Plugin component: layoutlib-resources
是由于 Android Studio 的插件组件下载失败或损坏导致的,在重载了插件后问题得到解决
熊磊昨天的成就:
昨天我在已经建好的web主页里进行对员工管理内的职位管理和职级管理(大半部分)的建立。大概花费了我4到5.5小时的时间。
展示:
更新了home.java的代码,但由于有464行(与实际呈现的效果比较,有些冗长,暂不展示)
效果图:

并在打算建立新的表单。
也与成员一起商讨了对项目中位置和职级更改方面的流程。

遇到的困难:
在初步创建功能是,总是不能成功的显示表格,在排查后发现是实体类与控制类,前端文件的数据名称不对应,在与数据库里各个表严格对照后成功运行。

今天的任务:
希望能够将员工管理剩下的两个功能一并完成,新建立对应的表单。再对代码进行必要的删减和优化(现在的代码堆砌得过于冗杂)。

posted @ 2025-04-20 22:24  01开拓者  阅读(13)  评论(0)    收藏  举报