Проблема, скопировав в пюпитре в виде дощечки с зажимом Андроид Студио

! Хорошие!

Прежде всего, я хочу довести до сведения, что уже я прочитал несколько вопросов / ответов форума, и ни одна не осветляет мою проблему.

Я заканчиваю маленький проект, который является APP, которая производит пароли случайным образом. Проблема, - когда я хочу скопировать пароль, хранившийся в одном textView в пюпитре в виде дощечки с зажимом.

С этим кодом меня сохраняет текст, когда я поддерживаю это нажатым:

public void copiar(View view) {

    if(etiqueta.getText().equals("")) {

        Toast.makeText(this, "No hay contraseña para copiar", Toast.LENGTH_SHORT).show();

    } else {

        etiqueta.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                // obtenemos el texto de entrada
                String text = etiqueta.getText().toString();
                ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
                ClipData clip = ClipData.newPlainText("",  text);
                clipboard.setPrimaryClip(clip);

                return true;
            }
        });


        Toast.makeText(this, "Contraseña copiada al portapapeles", Toast.LENGTH_SHORT).show();

    }
}

Но он не бросает этот:

Toast.makeText(this, "Contraseña copiada al portapapeles", Toast.LENGTH_SHORT).show();

Идея состоит в том, чтобы, когда пользователь нажмет и не поддержит нажатым текст, он был скопирован в пюпитр в виде дощечки с зажимом и покажет:

Toast.makeText(this, "Contraseña copiada al portapapeles", Toast.LENGTH_SHORT).show();

И когда между в условном, который выравнивает пустую цепь, он отпустит этот другой (не копируя ничего):

Toast.makeText(this, "No hay contraseña para copiar", Toast.LENGTH_SHORT).show();

Я оставляю также часть XML:

<TextView
    android:id="@+id/textView2"
    android:layout_width="0dp"
    android:layout_height="40dp"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginBottom="16dp"
    android:background="@drawable/milabel"
    android:clickable="true"
    android:onClick="copiar"
    android:gravity="center_horizontal|center_vertical"
    android:textAlignment="gravity"
    android:textSize="24sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="1.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.238" />

Так что: Как я могу способствовать тому, чтобы пользователь нажал и скопировал пароль в пюпитр в виде дощечки с зажимом? И покажите Toast.makeText.

Спасибо заранее.

1
задан 19.03.2019, 14:44
1 ответ

Уже это resolvГ-.

Благодаря Комментарию @armen , intentГ© это:

etiqueta.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {

                if(!etiqueta.getText().equals("")) {
                    String text = etiqueta.getText().toString();
                    ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
                    ClipData clip = ClipData.newPlainText("", text);
                    clipboard.setPrimaryClip(clip);

                    Toast.makeText(getApplicationContext(), "Contraseña copiada al portapapeles", Toast.LENGTH_SHORT).show();
                }
                return true;
            }
        });

С только парой изменений, чтобы точно подходить cГіdigo в мою необходимость, и уже функционируй в нее perfecciГіn. Я оставляю ответ, если кто-то нуждается в помощи с самим.

1
ответ дан 02.12.2019, 05:27

Теги

Похожие вопросы