Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Dantes2104
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
#1

Приведение TextView к своему классу - Программирование Android

21.02.2016, 22:11. Просмотров 192. Ответов 15

Мой класс
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class MyTv extends TextView{
    int place = -1;
 
    public MyTv(Context context) {
        super(context);
    }
 
 
    public void setPlace(int placeget){
        place = placeget;
    }
 
    public int getPlace(){
        return place;
    }
}

Пытался так
Java
1
MyTv tv = (MyTv) textview;
И так
Java
1
2
MyTv tv = MyTv(getContext());
tv.getClass().cast(textview);
И так
Java
1
MyTv tv = MyTv.class.cast(textview);
Ни один из способов не работает.
Подскажите пожалуйста как привести TextView к своему типу наследуемым от TextView.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2016, 22:11     Приведение TextView к своему классу
Посмотрите здесь:
Android Как дать своему приложению привилегии Root?
Анимация textview Android
Вывод в textView из БД Android
Android TextView а AlertDialog
Android Обратиться к TextView
Android Вывод в TextView
Android TextView и картинкака
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
22.02.2016, 11:56     Приведение TextView к своему классу #2
эта вьюшка указано в xml и она находится в onCreate() ?
если да то примерно так
Java
1
MyTv myTv = (MyTv) findViewById(R.id.myAwesomeCoolestView);
Dantes2104
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
22.02.2016, 16:42  [ТС]     Приведение TextView к своему классу #3
Нет. Она находится в собственном адаптере. Мне нужно именно приведение.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
22.02.2016, 16:45     Приведение TextView к своему классу #4
она там уже создана или нет?
код из адаптера увидеть бы, а от непонятно, надо ее создавать или нет

нельзя просто взять вот так обычную TextView которая уже была создана и скастовать в MyTv
Dantes2104
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
22.02.2016, 16:50  [ТС]     Приведение TextView к своему классу #5
Адаптер
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class NewAdapterForSearch<T> extends ArrayAdapter<T>{
 
 
    public NewAdapterForSearch(Context context, int resource, T[] objects) {
        super(context, resource, objects);
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        TextView tv1 = (TextView) super.getView(position, convertView, parent);
        MyTv tv = (MyTv) tv1;
        tv.setPlace(position);
        return tv;
    }
}

Вот как-то так.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
22.02.2016, 16:52     Приведение TextView к своему классу #6
MyTv tv1 = (MyTv) getView(position, convertView, parent);
наверное так
Dantes2104
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
22.02.2016, 17:08  [ТС]     Приведение TextView к своему классу #7
Нет.
java.lang.ClassCastException: android.widget.TextView cannot be cast to ru.loginov.project.MyTv
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
22.02.2016, 17:18     Приведение TextView к своему классу #8
MyTv tv = (MyTv) convertView;
так?

Добавлено через 4 минуты
если тоже нет, то надо видеть как создается адаптер в коде, где и как ему передается разметка для этого своего класса
Dantes2104
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
22.02.2016, 17:29  [ТС]     Приведение TextView к своему классу #9
FATAL EXCEPTION:
java.lang.NullPointerException

Добавлено через 59 секунд
Java
1
2
NewAdapterForSearch<String> arrayAdapter2 = new NewAdapterForSearch<String>(this,R.layout.list_item,new String[]{"Загрузка"});
ListView lv = (ListView) findViewById(R.id.listView);lv.setAdapter(arrayAdapter2);
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
22.02.2016, 17:46     Приведение TextView к своему классу #10
его мы и пытаемся кастовать в MyTv я так понимаю
а что там?
Dantes2104
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
22.02.2016, 18:01  [ТС]     Приведение TextView к своему классу #11
Где там? В MyTv? Он в самом верху.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
22.02.2016, 18:06     Приведение TextView к своему классу #12
не скопировалось R.layout.list_item
я про него говорил
Dantes2104
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
22.02.2016, 18:42  [ТС]     Приведение TextView к своему классу #13
list_item
Java
1
2
3
4
5
6
7
8
9
10
11
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:padding="5dp"
    android:text="TextView"
    android:textSize="24sp"
    android:textColor="@android:color/black">
</TextView>
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
22.02.2016, 18:43     Приведение TextView к своему классу #14
вот я и спрашиваю - эту вьюшку мы должны скастовать потом в MyTv ?
Dantes2104
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
22.02.2016, 18:44  [ТС]     Приведение TextView к своему классу #15
Получается что да.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2016, 18:47     Приведение TextView к своему классу
Еще ссылки по теме:
Android Клик по textview
TextColor textView Android
Вылетает TextView Android
Android ViewPager и TextView
Часы в TextView Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
22.02.2016, 18:47     Приведение TextView к своему классу #16
Сообщение было отмечено автором темы, экспертом или модератором как ответ
тогда надо там так и писать
<имяпакета.что-то там.MyTv
вместо TextView

и в самом классе надо будет добавить еще один конструктор или поменять существующий на
Java
1
2
3
    public MyTv(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
Yandex
Объявления
22.02.2016, 18:47     Приведение TextView к своему классу
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru