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