用Androidstudio做含有列表和对话框的笔记给出详细步骤和代码
时间: 2024-03-18 22:38:38 浏览: 209
好的,下面是使用Android Studio实现带有列表和对话框的笔记的详细步骤和代码。
1. 创建新项目
在Android Studio中,点击“File”->“New”->“New Project”来创建一个新的项目。
2. 添加RecyclerView依赖
在app的build.gradle文件中添加RecyclerView依赖:
```java
dependencies {
implementation 'com.android.support:recyclerview-v7:28.0.0'
}
```
3. 创建Note类
创建一个名为“Note”的Java类,用于表示笔记对象。该类应该包含一个标题和一个内容。
```java
public class Note {
private String title;
private String content;
public Note(String title, String content) {
this.title = title;
this.content = content;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
```
4. 创建RecyclerView的布局
在app的res/layout文件夹中创建一个名为“item_note.xml”的布局文件,用于表示单个笔记的布局。该布局应该包含一个标题和一个内容。
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/text_view_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/text_view_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp" />
</LinearLayout>
```
5. 创建RecyclerView的适配器
创建一个名为“NoteAdapter”的Java类,用于适配RecyclerView。该类应该继承自RecyclerView.Adapter,并重写onCreateViewHolder、onBindViewHolder和getItemCount方法。
```java
public class NoteAdapter extends RecyclerView.Adapter<NoteAdapter.NoteViewHolder> {
private List<Note> notes;
public NoteAdapter(List<Note> notes) {
this.notes = notes;
}
@NonNull
@Override
public NoteViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_note, parent, false);
return new NoteViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull NoteViewHolder holder, int position) {
Note note = notes.get(position);
holder.textViewTitle.setText(note.getTitle());
holder.textViewContent.setText(note.getContent());
}
@Override
public int getItemCount() {
return notes.size();
}
class NoteViewHolder extends RecyclerView.ViewHolder {
TextView textViewTitle;
TextView textViewContent;
public NoteViewHolder(@NonNull View itemView) {
super(itemView);
textViewTitle = itemView.findViewById(R.id.text_view_title);
textViewContent = itemView.findViewById(R.id.text_view_content);
}
}
}
```
6. 创建主活动的布局
在app的res/layout文件夹中创建一个名为“activity_main.xml”的布局文件,用于表示主活动的布局。该布局应该包含一个RecyclerView和一个“添加笔记”按钮。
```xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view_notes"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/button_add_note" />
<Button
android:id="@+id/button_add_note"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Add Note" />
</RelativeLayout>
```
7. 创建主活动的Java类
创建一个名为“MainActivity”的Java类,用于控制主活动。该类应该包含一个RecyclerView和一个“添加笔记”按钮,并在“添加笔记”按钮上设置一个单击事件侦听器。
```java
public class MainActivity extends AppCompatActivity {
private List<Note> notes = new ArrayList<>();
private RecyclerView recyclerView;
private NoteAdapter noteAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recycler_view_notes);
noteAdapter = new NoteAdapter(notes);
recyclerView.setAdapter(noteAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
Button buttonAddNote = findViewById(R.id.button_add_note);
buttonAddNote.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showAddNoteDialog();
}
});
}
private void showAddNoteDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Add Note");
View view = LayoutInflater.from(this).inflate(R.layout.dialog_add_note, null);
final EditText editTextTitle = view.findViewById(R.id.edit_text_title);
final EditText editTextContent = view.findViewById(R.id.edit_text_content);
builder.setView(view);
builder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String title = editTextTitle.getText().toString();
String content = editTextContent.getText().toString();
Note note = new Note(title, content);
notes.add(note);
noteAdapter.notifyDataSetChanged();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
}
}
```
8. 创建添加笔记的对话框的布局
在app的res/layout文件夹中创建一个名为“dialog_add_note.xml”的布局文件,用于表示添加笔记的对话框的布局。该布局应该包含一个标题编辑框和一个内容编辑框。
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/edit_text_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Title" />
<EditText
android:id="@+id/edit_text_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Content" />
</LinearLayout>
```
9. 运行应用程序
点击“Run”按钮,在模拟器或设备上运行应用程序。您应该能够看到一个空列表和一个“添加笔记”按钮。单击“添加笔记”按钮,应该会弹出一个对话框,您可以在其中输入笔记的标题和内容。单击“添加”按钮后,笔记应该会添加到列表中。
阅读全文