安卓完成一个简易备忘录功能,主页点击加号按钮,弹出可编辑对话框,点击保存之后动态在该布局加入数据,动态增长该布局的长度,以上功能都在主界面成。
时间: 2023-10-25 12:08:51 浏览: 45
好的,下面是大致的实现步骤:
1. 在主界面布局中添加一个加号按钮和一个垂直的线性布局,用于动态添加备忘录数据。
2. 当点击加号按钮时,弹出一个对话框,让用户输入备忘录内容。
3. 在对话框中添加一个编辑框和两个按钮(保存和取消)。
4. 当用户点击保存按钮时,获取编辑框中的文本内容,创建一个新的备忘录数据,并将其添加到主界面布局中的线性布局中。
5. 动态增加线性布局的长度,以适应所有备忘录数据。
下面是一个示例代码:
1. 主界面布局文件(activity_main.xml):
```xml
<LinearLayout
android:id="@+id/layout_memo_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:id="@+id/btn_add_memo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"/>
</LinearLayout>
```
2. 对话框布局文件(dialog_add_memo.xml):
```xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/edit_memo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入备忘录内容"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="right">
<Button
android:id="@+id/btn_save_memo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="保存"/>
<Button
android:id="@+id/btn_cancel_memo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取消"/>
</LinearLayout>
</LinearLayout>
```
3. 主界面 Java 代码(MainActivity.java):
```java
public class MainActivity extends AppCompatActivity {
private LinearLayout mLayoutMemoList;
private Button mBtnAddMemo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLayoutMemoList = findViewById(R.id.layout_memo_list);
mBtnAddMemo = findViewById(R.id.btn_add_memo);
mBtnAddMemo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showAddMemoDialog();
}
});
}
private void showAddMemoDialog() {
View dialogView = LayoutInflater.from(this).inflate(R.layout.dialog_add_memo, null);
final EditText editMemo = dialogView.findViewById(R.id.edit_memo);
Button btnSaveMemo = dialogView.findViewById(R.id.btn_save_memo);
Button btnCancelMemo = dialogView.findViewById(R.id.btn_cancel_memo);
final AlertDialog dialog = new AlertDialog.Builder(this)
.setView(dialogView)
.create();
btnSaveMemo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String memoText = editMemo.getText().toString().trim();
if (!TextUtils.isEmpty(memoText)) {
addMemoToList(memoText);
dialog.dismiss();
} else {
Toast.makeText(MainActivity.this, "请输入备忘录内容", Toast.LENGTH_SHORT).show();
}
}
});
btnCancelMemo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
private void addMemoToList(String memoText) {
TextView memoView = new TextView(this);
memoView.setText(memoText);
memoView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
memoView.setPadding(0, 16, 0, 16);
mLayoutMemoList.addView(memoView);
ScrollView scrollView = findViewById(R.id.scroll_view);
scrollView.post(new Runnable() {
@Override
public void run() {
scrollView.fullScroll(View.FOCUS_DOWN);
}
});
}
}
```
这里使用了 AlertDialog 来显示对话框,并通过 TextView 动态添加备忘录数据。同时,为了让用户可以滚动查看所有备忘录数据,还添加了一个 ScrollView。请根据您的具体需求进行修改和调整。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)