public void text2(){ View layout=View.inflate(this,R.layout.dialog_username,null); AlertDialog.Builder b=new AlertDialog.Builder(this); b.setTitle("修改名称"); b.setView(layout); b.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int which) { EditText update=layout.findViewById(R.id.view2); SharedPreferences sp1 = getSharedPreferences("mydata", Context.MODE_PRIVATE); SharedPreferences.Editor editor1 = sp1.edit(); editor1.putString("USER", update.getText().toString()); editor1.commit(); Toast.makeText(ziliaoye02.this,"保存成功!", Toast.LENGTH_LONG).show(); finish(); String USER = sp1.getString("USER", ""); view2.setText(USER); //String newName=update.getText().toString().trim(); //view2.setText(newName); } }); b.setNegativeButton("取消",null); b.show(); }
时间: 2024-01-15 18:03:08 浏览: 301
这段代码是一个函数,名为 `text2()`,它创建了一个对话框来修改用户名,并将新的用户名保存在 `SharedPreferences` 中。下面是代码的解释:
1. `View layout=View.inflate(this,R.layout.dialog_username,null);`
创建了一个视图 `layout`,它使用 `dialog_username.xml` 中定义的布局。这个布局包含一个文本框 `EditText` 和一个文本视图 `TextView`。
2. `AlertDialog.Builder b=new AlertDialog.Builder(this);`
创建了一个对话框构建器 `b`,它将用于创建对话框。
3. `b.setTitle("修改名称");`
设置对话框的标题为 "修改名称"。
4. `b.setView(layout);`
将视图 `layout` 设置为对话框的内容。
5. `b.setPositiveButton("确定", new DialogInterface.OnClickListener() { ... }`
设置对话框的 "确定" 按钮的点击事件监听器。当用户点击 "确定" 时,将执行监听器中的代码。
6. `EditText update=layout.findViewById(R.id.view2);`
获取视图 `layout` 中的文本框 `EditText`,并将其赋值给变量 `update`。
7. `SharedPreferences sp1 = getSharedPreferences("mydata", Context.MODE_PRIVATE);`
获取名为 "mydata" 的 `SharedPreferences` 实例,使用私有模式(只能被当前应用程序访问)。
8. `SharedPreferences.Editor editor1 = sp1.edit();`
获取 `SharedPreferences` 的编辑器 `editor1`,用于修改 `SharedPreferences` 中的数据。
9. `editor1.putString("USER", update.getText().toString());`
将变量 `update` 中的文本框内容保存到 `SharedPreferences` 中,键为 "USER"。
10. `editor1.commit();`
提交 `SharedPreferences` 的修改。
11. `Toast.makeText(ziliaoye02.this,"保存成功!", Toast.LENGTH_LONG).show();`
显示 "保存成功!" 的消息提示。
12. `finish();`
结束当前活动(Activity),返回上一个活动。
13. `String USER = sp1.getString("USER", "");`
从 `SharedPreferences` 中获取键为 "USER" 的字符串值,并将其赋值给变量 `USER`。
14. `view2.setText(USER);`
将变量 `USER` 中的字符串值显示在文本视图 `TextView` 中。
以上就是这段代码的主要逻辑。它实现了一个简单的修改用户名的对话框,并将新的用户名保存在 `SharedPreferences` 中。
阅读全文