E / Toast: setGravity() не следует вызывать для текстовых тостов, значения не будут использоваться

#android

#Android

Вопрос:

Я смотрю лекцию, но застрял в месте под названием «Отображение местоположения тостов».

Если вы введете левую (координата X) и правую (координата Y) в уравнение, позиция тостов будет

Они летают соответственно,

введите описание изображения здесь

Цель состоит в том, чтобы сделать это таким образом,

введите описание изображения здесь

Я ввел код таким, каким он был, и какое бы значение я ни ввел

Это отображается только ниже.

Просмотр журнала

E / Toast: setGravity() не должен вызываться для текстовых тостов, и значение не используется.

Я получаю эту ошибку, но я не знаю, что делать.

Помогите мне, старшие…

MainActivity.java выше это выглядит так

Приведенный ниже xml выглядит так.

 public class MainActivity extends AppCompatActivity {
    EditText editText;
    EditText editText2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = findViewById(R.id.editText);
        editText2 = findViewById(R.id.editText2);
    }

    public void onButton1Clicked(View v) {
        try {
            Toast toastView = Toast.makeText(this, "위치가 바뀐 토스트 메시지입니다.",
                    Toast.LENGTH_LONG); 
            int xOffset = Integer.parseInt(editText.getText().toString()); 

            int yOffset = Integer.parseInt(editText2.getText().toString());

            toastView.setGravity(Gravity.TOP, xOffset, yOffset);
            toastView.show();
        } catch (NumberFormatException e) { 
            e.printStackTrace();




<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <EditText
            android:id="@ id/editText"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:textSize="20sp"
            android:hint="X 위치"
            android:inputType="numberSigned" />
        <EditText
            android:id="@ id/editText2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:textSize="20sp"
            android:hint="Y 위치"
            android:inputType="numberSigned"
            />
        <Button
            android:id="@ id/button"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="띄우기"
            android:textSize="20sp"
            android:onClick="onButton1Clicked"/>
    </LinearLayout>
</LinearLayout>
 

Комментарии:

1. developer.android.com/reference/android/widget / … метод не работает Android >= 11. Пользовательские тосты не разрешены для приложений, ориентированных на Android API 30 .

2. Вы пробовали toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 0); ? Работает ли это?

3. Да, к сожалению, это то же самое, я думаю, правильный ответ от ashu.

4. Вы нашли ответ? Я сталкиваюсь с тем же