Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/57: Рейтинг темы: голосов - 57, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 4

Обращение к элементам активити из другого класса

20.10.2012, 18:50. Показов 11889. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Ломаю голову битый час, все не могу понять, почему у меня не получается. Опишу по шагам.
Создал проект андроид (в эклипсе), есть layout-файл activity_main.xml, в нем TextView имеющий id tvHello,
я создал класс Student, в нем есть конструктор и метод, меняющий этот tvHello и при запуске программы:
1. создается объект этого класса
2. открывается layout файл
3. вызывается метод, меняющий TextView.
Но при запуске на эмуляторе приложение вылетает, в LogCat ошибка NullPointerException. Исходники прилагаю.

Main_Activity:
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
package com.example.student_sos;
 
import android.os.Bundle;
 
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
import com.example.student_sos.Student;;
 
 
public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Student st = new Student();
        st.showTextOnView("бла - бла");
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
класс Student:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.example.student_sos;
import android.widget.TextView;
import android.app.Activity;
import com.example.student_sos.R;
 
public class Student extends Activity {
    String s;
    int tempInt;
    TextView tvHello;
    public Student(){
        tempInt = 1;
        return;
    }
 
    public void showTextOnView(String text){
        
        tvHello = (TextView) findViewById(R.id.tvHello);
        tvHello.setText(text);
        tempInt = 2;
        return;
    }
 
}
Я примерно понимаю в чем проблема, но в голове не могу уместить, почему такое возникает? Activity каким-то образом блокируется? Или что-то еще.
Очень надеюсь на вашу помощь, заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.10.2012, 18:50
Ответы с готовыми решениями:

Обращение к элементам фрагмента из активити
Есть необходимость в программе менять значение TextView находящегося во фрагменте. Фрагмент должен выводится в контейнер. И затем я...

Обращение к элементам другой Активити
Есть xml-файл главной активити main.xml который содержит поле ввода <EditText android:id="@+id/edPhone" ...

Обращение к элементам Form из другого класса
Подскажите, будьте добры, как обратиться к элементу Form1 из другого класса. Мне нужно использовать изображение pictureBox1...

4
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
20.10.2012, 19:23
у вас здесь два активити и вы пытаетесь найти внутри второго активити то, что находится внутри первого активити)
0
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 4
21.10.2012, 05:31  [ТС]
Не могу вкурить, почему же я обращаюсь к первому активити?
У меня есть layout файл. Там есть визуальный компонент. Затем я с помощью метода SetContentView отображаю этот layout.
В каком месте я обращаюсь к активити? Проблему свою я понял, вопрос чисто теоретический, ибо никак не дойдет.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
21.10.2012, 06:37
вы обращаетесь к активити стюдент в месте findViewById(R.id.tvHello); а контент у вас вставлен в активити MainActivity
1
 Аватар для kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
22.10.2012, 11:37
Не вижу смысла таким образом создавать объект, расширяющий активити . Активити гарантированно существует пока оно на экране, в другом случае система может посчитать его ненужным и грохнуть. При создании активити должен вызываться метод onCreate, в котором проходит вся инициализация, включая указание XML файла, который должен использоваться в активити. Этот метод сработает при получении активити соответствующего намерения (Intent). Например таким образом:
Java
1
startActivity(new Intent(this, Student.class));
В Вашем же случае инициализация активити не проводится, на экран активити не выводится и зачем подобное расширение класса Activity нужно мягко говоря не очень понятно, ведь все методы расширяемого класса вы оставляете "за бортом" и ниоткуда их не вызываете. И еще непонятно зачем в конце каждого метода писать return; по завершении метода мы и так из него выйдем. Опишите что конкретно Вы хотите получить на выходе, но перед этим прочитайте базовую теоретическую часть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.10.2012, 11:37
Помогаю со студенческими работами здесь

Обращение к элементам из другого окна
Допустим в окне A происходят расчеты и данные записывается в специальный класс List //окно A public List<string> newlist...

Обращение к элементам класса (поставив точку, показать свойства и методы класса)
Есть класс Audio, у него есть две основных задачи воспроизводить и записывать звук (Recorder/Player). Хотелось бы, что бы все методы и...

Обращение к элементам формы из другого потока
Извиняйте за очередную тему. Тут на форуме я уже их много прочитал, но все равно не могу понять эти делегаты и инвок. На форуме есть...

Обращение к элементам формы с другого потока
Есть форма, есть потоки, которые должны получить доступ к ProgressBar'у, расположенному на форме. Делал так: module *** Private...

Обращение к элементам формы из другого потока
Короче говоря многопоточность это моя слабость. Сколько статей перечитал уже, один хрен не пойму как они синхронизируются и как...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru