首页 > 解决方案 > 永久设置提示?

问题描述

我有一个编辑文本,我希望当用户输入他的名字时,例如当他插入他的名字时提示永久更改。我应该在创建时执行此操作吗?如果是的话,我应该做类似的事情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");
    }

标签: javaandroidandroid-studio

解决方案


把它放在 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”键下找到某些内容,则将在提示中设置该内容。否则你会得到随机提示。检查这个链接。试试看,我希望它有效


推荐阅读