2 вопроса 1)наследие 2 неточный результат.

Ответить
radlif
Сообщения: 1
Зарегистрирован: 27 окт 2020, 12:19

2 вопроса 1)наследие 2 неточный результат.

Сообщение radlif » 27 окт 2020, 13:01

Всем доброе время суток)
Пришёл в java после Visual Basic 6, ActionScript 3.0 и наткнулся на кучу непонятных ошибок которые не выводятся дебагером,
Но приложение после запуска моментально закрывается.
Работаю в android studio, тестирую на андроид магия 3.1.
1) Ошибка При создание дополнительного класса который создаёт новый ImageView.

Код: Выделить всё

public class Tile extends MainActivity {
 
public vold NewImg (){
 
ImageView imageView = new ImageView(MainActivity.this);
       imageView.setId(zx);
        imageView.setLayoutParams(imageViewLayoutParams);
        imageView.setOnTouchListener(this);
        imageView.setX(a);
        imageView.setY(b);
        mainLayout.addView(imageView)
}
Инициализация
Tile tile = new Tile();
tile(необходимые переменные);
Ошибки не пишет, но приложение вылетает на первой строчке ImageView imageView = new ImageView(MainActivity.this);
Остальную часть кода закрывал комментариями.
Пробовал менять MainActivity.this на другие ссылки наподобие R.id.MainActivity , R.id.Activity и тд, не что не работает.

Ошибка 2 условие if прекращает выполнение раньше положенного.
getXim = event.getRawX(); // полученное во время клика

Код: Выделить всё

    if (STddd == 1) {

                    if(Math.round (Math.abs(getXim-imageView.getX())) <=imageView.getWidth()) {
                        getXim2= Math.round (Math.abs(getXim-imageView.getX()));
                        imageView.setX(x);
                    }
                }
Как бы всё работает правильно, но imageView.setX(x) перестаёт работать раньше чем Math.round (Math.abs(getXim-imageView.getX()))
становится больше 100, при чём по разному, иногда на значение 89 иногда на значение 99, если очень медленно двигать пальцем то срабатывает как надо.
Как устранить сели OnTouchListener не сработал вовремя и значение приняло результат больше 100(imageView.getWidth()).

Ответить