Навсегда установить подсказку? - PullRequest
1 голос
/ 24 марта 2020

У меня есть текст для редактирования, и я хочу, чтобы, например, когда пользователь вводил свое имя, подсказка постоянно менялась, когда он вставлял свое имя. Должен ли я делать это при создании? и если да, я должен сделать что-то вроде 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");
    }

1 Ответ

0 голосов
/ 24 марта 2020

Поместите это в Создать. вам нужно проверить, есть ли имя в prefs, перед установкой подсказки.

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», то это значение будет указано в подсказке. иначе вы получите случайный намек. проверьте эту ссылку . попробуйте, я надеюсь, что это работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...