Android dodaje tekst zastępczy do EditText

365

Jak mogę dodać tekst zastępczyEditText w klasie, która nie znajduje się w pliku XML?

Mam EditTextw swoim kodzie następujące elementy, które zostaną wyświetlone w alertdialog:

    final EditText name = new EditText(this);
Mona
źródło
1
Co rozumiesz przez symbol zastępczy?
LuxuryMode
4
Jest to tekst pisany jasnymi kolorami na paskach tekstowych, a gdy użytkownik kliknie pasek tekstowy, aby coś napisać, ten tekst zniknie.
Mona,

Odpowiedzi:

831

Ach, okej To czego szukasz setHint(int). Po prostu podaj identyfikator zasobu ciągu z pliku XML i możesz zacząć.

wprowadź opis zdjęcia tutaj

EDYTOWAĆ

A w XML to po prostu android:hint="someText"

LuxuryMode
źródło
6
Dzięki! Nie wiedziałem, jak to nazywają w Androidzie, po prostu wiem, że na iOS to się nazywa symbol zastępczy.
Mona,
39
Jest powszechnie znany jako symbol zastępczy, ale oczywiście android jest inny, aby być innym;)
Joe Maher
21

android:hint="text" dostarcza użytkownikowi informacji, które należy wypełnić w szczególności editText

na przykład: - Mam dwa edittext jeden dla wartości liczbowej i drugi dla wartości ciągu. możemy ustawić wskazówkę dla użytkownika, aby mógł zrozumieć, jaką wartość musi dać

android:hint="Please enter phone number"
android:hint="Enter name" 

po uruchomieniu aplikacji te dwa teksty edycyjne pokażą wprowadzoną podpowiedź, po kliknięciu przycisku edytuj tekst, a użytkownik może wprowadzić to, czego chce (patrz obraz w trybie luxurymode)

Monty
źródło
To się nazywa podpowiedź w Androidzie.
Monty,
11

W twojej działalności

<EditText
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:background="@null"
                android:hint="Text Example"
                android:padding="5dp"
                android:singleLine="true"
                android:id="@+id/name"
                android:textColor="@color/magenta"/>

wprowadź opis zdjęcia tutaj

David Hackro
źródło
7

W ten sposób można wprowadzić hasło, które zawiera podpowiedź, która nie została przekonwertowana na * !!.

W XML:

android:inputType="textPassword"
android:gravity="center"
android:ellipsize="start"
android:hint="Input Password !."

podziękowania dla: mango i rjrjr za wgląd: D.

Bhimbim
źródło
5

W Android Studio możesz dodać Podpowiedź (Place place) poprzez GUI. Najpierw wybierz pole EditText w widoku projektanta. Następnie kliknij Drzewo komponentów Lewa strona IDE (normalnie jest tam, ale może być tam zminimalizowana) Tam możesz zobaczyć Właściwości wybranego EditText. Znajdź pole podpowiedzi, jak poniżej Obraz

wprowadź opis zdjęcia tutaj

Tam możesz dodać Podpowiedź (Place place) do EditText

Menuka Ishan
źródło
3

Jeśli masz na myśli lokalizację, w której dodasz go w układzie. Możesz zdefiniować kontener taki jak FrameLayout i dodać do niego ten EditText podczas jego tworzenia.

<LinearLayout xmlns=".."/>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/container" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

FrameLayout layout = (FrameLayout) findViewById(R.id.container);
layout.addView(name);
Rajdeep Dua
źródło
1

Musisz użyć atrybutu android: wskazówka

<EditText
android:id="@+id/message"
android:hint="<<Your placeholder>>"
/>

W Android Studio możesz przełączyć się z XML -> Widok projektu i kliknąć Komponent w układzie, w tym przypadku pole Edytuj tekst. Spowoduje to wyświetlenie wszystkich odpowiednich atrybutów tego komponentu GUI. Będzie to przydatne, gdy nie znasz wszystkich dostępnych atrybutów.

Byłbyś zaskoczony, widząc, że EditText ma ponad 140 atrybutów dostosowywania.

Deweloper Alagu
źródło
0

Jeśli chcesz wstawić tekst do widoku EditText, który pozostaje tam po wybraniu pola (w przeciwieństwie do zachowania podpowiedzi), wykonaj następujące czynności:

W Javie:

// Cast Your EditText as a TextView
((TextView) findViewById(R.id.email)).setText("your Text")

W Kotlinie:

// Cast your EditText into a TextView
// Like this
(findViewById(R.id.email) as TextView).text = "Your Text"
// Or simply like this
findViewById<TextView>(R.id.email).text = "Your Text"
Hawk Red
źródło