java - 永久设置提示?
问题描述
我有一个编辑文本,我希望当用户输入他的名字时,例如当他插入他的名字时提示永久更改。我应该在创建时执行此操作吗?如果是的话,我应该做类似的事情if(name.isEmpty())?
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/hintguy"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:textColorHint="#ffffff"
app:errorEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/texto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="#4249ff"
android:hint="@string/BtnO"
android:textColor="#ffffff" />
</com.google.android.material.textfield.TextInputLayout>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="confirmInput"
android:text="@string/Btns" />
这是我的java代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
prefs= getSharedPreferences("my_data",MODE_PRIVATE);
String name = prefs.getString("MY_NAME","name");
String home = prefs.getString("MY_HOME","home");
nameInput =(EditText)findViewById(R.id.texto);
homeInput =(EditText)findViewById(R.id.textd);
Toast.makeText(this,name,Toast.LENGTH_LONG).show();
}
public void copy(View view) {
}
public void confirmInput(View view) {
String name=nameInput.getText().toString();
SharedPreferences.Editor editor = prefs.edit();
editor.putString("MY_NAME",name);
editor.apply();
Toast.makeText(this,name,Toast.LENGTH_LONG).show();
TextInputLayout textInputLayout = (TextInputLayout)findViewById(R.id.hintguy);
textInputLayout.setHint("Hello");
}
解决方案
把它放在 onCreate 中。在设置提示之前,您需要检查首选项中是否有名称。
TextInputLayout textInputLayout = (TextInputLayout)findViewById(R.id.hintguy);
String savedName=prefs.getString("MY_NAME","");
if (savedName.length()>0){
textInputLayout.setHint("Hello "+name);
}else{
textInputLayout.setHint("hint when no name present");
}
如果在共享首选项的“MY_NAME”键下找到某些内容,则将在提示中设置该内容。否则你会得到随机提示。检查这个链接。试试看,我希望它有效
推荐阅读
- java - 如何重绘 - 在处理中重新启动循环
- html5-canvas - 在人体画布上使用同心圆
- matplotlib - 如何用 triplot 指定边缘颜色
- gstreamer - Gstreamer 封闭式 T 恤
- geocoding - HERE Geocoder Autocomplete API matchLevel 参数
- c - 在 C 中分配矩阵
- excel - 如果某些单元格在 VBA 中为空白,如何删除一行
- android - 如何根据地图的缩放级别显示标记
- linux - 在 dockerized mongodb 上找不到 mongodb 配置文件
- r - 基于字符串匹配的特定列的行和