Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
isen
0 / 0 / 0
Регистрация: 20.07.2016
Сообщений: 25
1

Создание объекта через xml разметку. NullPointerExeption

29.12.2016, 03:11. Просмотров 311. Ответов 5
Метки нет (Все метки)

Кажется у меня пробел в основах, я думал прописывая вью через разметку, при сборке создается экземпляр класса, и стоит лишь найти вьюшку по id можно сразу юзать её методы, тем ни менее мне пишет ошибку NullPointerExeption.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2016, 03:11
Ответы с готовыми решениями:

Преобразовать xml разметку в картинку
Искал честно не нашел. Есть xml разметка с кучей TextView. Можно ли как то преобразовать это все...

Создание экрана программно и через xml файл
Когда задаю всё программно, все элементы как надо располагаются на экране, ничего не сдвигается,...

Создание документа XML через LINQ-to-XML
как создать новый документ xml через LINQ-to-xml XDocument doc =new...

Создание объекта класса и запись элемента в XML
У меня такой вопрос как в XML-документ добавить заранее неизвестное количество елементов. По идее...

Создание копии объекта через сериализацию
Всем доброго времени суток! Реализую так: public static T CopyFromSerialize<T>(T...

5
Alex_Fedor
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
29.12.2016, 07:58 2
Телепаты на каникулах. Будут коды, лог ошибок будет ответ.
0
isen
0 / 0 / 0
Регистрация: 20.07.2016
Сообщений: 25
29.12.2016, 09:15  [ТС] 3
Alex_Fedor, я ведь спросил про общий механизм создания экземпляров класса через xml, в общем ниже приведён объект player, и чудо кастомная кнопка управления сим объектом

Добавлено через 6 минут
XML
1
2
3
4
5
<isen.isenwalks.Creatures.Player
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/ic_launcher"
            android:id="@+id/player"/>
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
public class LeftButton extends Button implements View.OnClickListener,View.OnLongClickListener,View.OnTouchListener {
private Player player;
    private final long DELAY=100;
 
    public LeftButton(Context context) {
        super(context);
        init();
 
    }
 
    public LeftButton(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
 
    }
 
    public LeftButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
 
    }
 
    public void init(){
        player=(Player) findViewById(R.id.player);
        setOnClickListener(this);
        setOnLongClickListener(this);
        setOnTouchListener(this);
    }
    @Override
    public void onClick(View view) {
        player.moveLeft();
    }
 
    @Override
    public boolean onLongClick(View view) {
 
        postDelayed(action,DELAY);
        return false;
    }
 
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
 
        switch(motionEvent.getAction()){
            case MotionEvent.ACTION_CANCEL: getHandler().removeCallbacks(action);break;
            case MotionEvent.ACTION_UP: getHandler().removeCallbacks(action);break;
        }
        return false;
    }
 
    private final Runnable action = new Runnable() {
        @Override
        public void run() {
            player.moveLeft();
            postDelayed(action,DELAY);
        }
    };
}
0
klim76
20 / 14 / 2
Регистрация: 10.06.2016
Сообщений: 144
29.12.2016, 10:31 4
Цитата Сообщение от isen Посмотреть сообщение
создания экземпляров класса через xml

мухи разметка отдельно, котлеты объекты отдельно
0
Alex_Fedor
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
29.12.2016, 12:43 5
Извиняюсь за невежество, а где вы такой код видели, и на кой такой код нужен. Всегда в описании рисуем кнопку в разметке назначаем ей слушателя, пишем обработчик кликанья.
0
isen
0 / 0 / 0
Регистрация: 20.07.2016
Сообщений: 25
29.12.2016, 21:55  [ТС] 6
ПикачуПаблито, я выбираю тебя! помоги!

Добавлено через 2 часа 59 минут
Нашел

findViewById() returns a View if it exists in the layout you provided in setContentView(), otherwise it returns null and that's what happening to you.

Example if you setContentView(R.layout.activity_first); and then call findViewById(R.id.first_View); it will return a View which is your layout.

But if you call findViewById(R.id.second_View); it will return null since there is not a view in your activity_first.xml layout called @+id/second_View.

Добавлено через 10 минут
собака всё равно null
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
RelativeLayout 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:id="@+id/activity_game"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/game_background"
    android:gravity="bottom"
    tools:context="isen.isenwalks.GameActivity">
 
 
    <isen.isenwalks.Buttons.RightButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/right"
        android:id="@+id/rightButton"
        android:layout_alignParentBottom="true"
        android:layout_toEndOf="@+id/leftButton" />
 
    <isen.isenwalks.Buttons.LeftButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/left"
        android:id="@+id/leftButton"
 
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true" />
 
    <isen.isenwalks.Creatures.Player
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher"
        android:id="@+id/player"/>
 
 
</RelativeLayout>
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class GameActivity extends Activity {
 
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.activity_game);
 
 
 
    }
 
 
}
Добавлено через 23 минуты
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NullPointerException
at isen.isenwalks.Buttons.RightButton.onClick(RightButton.java:44)
at android.view.View.performClick(View.java:4204)
at android.view.View$PerformClick.run(View.java:17355)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
0
29.12.2016, 21:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2016, 21:55

Создание XML через ElementTree
Доброго времени суток, господа! Я создаю xml-файлы с помощью ElementTree и всё сохраняется...

Создание объекта через IIS выдаёт ошибку
Создал asp страницу, всьо нормально работает но только я пытаюсь выполнить её ч-з IIS выдаёт ошибку...

Создание объекта через указатель на базовый абстрактный класс
Есть абстрактный класс, от него наследуется 3 класса. В программе предусмотрено создание нового...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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