Android Studio期末大作业源代码

概述

在Android应用开发的过程中,使用Android Studio是非常常见的。Android Studio是一款针对Android平台的官方集成开发环境(IDE)。它提供了一套全面的工具,帮助开发者构建高质量的Android应用程序。

在本文中,我将介绍一个示例源代码,展示如何使用Android Studio开发一个简单的任务管理应用。这个应用程序允许用户创建、编辑和删除任务,以及对任务进行标记和排序。

项目结构

在Android Studio中,一个项目通常由一个或多个模块组成。每个模块包含一个或多个Android组件,如活动(Activity)、片段(Fragment)和服务(Service)。此外,项目还包含资源文件、布局文件和其他辅助文件。

以下是这个示例项目的基本结构:

.
├── app
│   ├── src
│   │   ├── main
│   │   │   ├── java/com/example/taskmanager
│   │   │   │   ├── model
│   │   │   │   │   └── Task.java
│   │   │   │   ├── ui
│   │   │   │   │   ├── MainActivity.java
│   │   │   │   │   ├── TaskAdapter.java
│   │   │   │   │   └── TaskDialogFragment.java
│   │   │   │   └── MainActivity.java
│   │   │   └── res
│   │   │       ├── layout
│   │   │       │   ├── activity_main.xml
│   │   │       │   └── fragment_task_dialog.xml
│   │   │       └── values
│   │   │           └── strings.xml
│   │   └── test
│   └── build.gradle
├── build.gradle
└── settings.gradle

示例代码

Task.java

public class Task {

    private String title;
    private String description;
    private boolean isCompleted;

    public Task(String title, String description) {
        this.title = title;
        this.description = description;
        this.isCompleted = false;
    }

    public String getTitle() {
        return title;
    }

    public String getDescription() {
        return description;
    }

    public boolean isCompleted() {
        return isCompleted;
    }

    public void setCompleted(boolean completed) {
        isCompleted = completed;
    }
}

MainActivity.java

public class MainActivity extends AppCompatActivity {

    private List<Task> taskList;
    private RecyclerView recyclerView;
    private TaskAdapter taskAdapter;

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

        taskList = new ArrayList<>();
        recyclerView = findViewById(R.id.recycler_view);
        taskAdapter = new TaskAdapter(taskList);

        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setAdapter(taskAdapter);

        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showTaskDialog();
            }
        });
    }

    private void showTaskDialog() {
        FragmentManager fragmentManager = getSupportFragmentManager();
        TaskDialogFragment dialogFragment = new TaskDialogFragment();
        dialogFragment.show(fragmentManager, "task_dialog");
    }

    public void addTask(Task task) {
        taskList.add(task);
        taskAdapter.notifyDataSetChanged();
    }

    public void deleteTask(int position) {
        taskList.remove(position);
        taskAdapter.notifyItemRemoved(position);
    }

    public void markTaskAsCompleted(int position) {
        Task task = taskList.get(position);
        task.setCompleted(true);
        taskAdapter.notifyItemChanged(position);
    }
}

TaskAdapter.java

public class TaskAdapter extends RecyclerView.Adapter<TaskAdapter.TaskViewHolder> {

    private List<Task> taskList;

    public TaskAdapter(List<Task> taskList) {
        this.taskList = taskList;
    }

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

    @Override
    public void onBindViewHolder(@NonNull TaskViewHolder holder, int position) {
        Task task = taskList.get(position);

        holder.titleTextView.setText(task.getTitle());
        holder.descriptionTextView.setText(task.getDescription());

        if (task.isCompleted()) {
            holder.itemView.setBackgroundColor(Color.LTGRAY);
        } else {
            holder.itemView.setBackgroundColor(Color.WHITE);
        }
    }

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

    public class TaskViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        public TextView titleTextView;
        public TextView descriptionTextView;

        public TaskViewHolder(@NonNull View