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

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

Войти
Регистрация
Восстановить пароль
 
danek130995
23 / 23 / 1
Регистрация: 25.05.2014
Сообщений: 850
#1

Обращение к textView из другого класса (не MainActivity) в AndroidStudio - Android

16.01.2015, 21:19. Просмотров 996. Ответов 7
Метки нет (Все метки)

Добрый вечер, у меня такой вопрос. В MainActivity можно обращаться к объектам, а если в другом классе требуется, допустим, найти объект типа TextView, я пишу "имя класса" extends 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
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
package com.example.areas;
 
 
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
 
 
public class MainActivity extends ActionBarActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
 
        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
 
        return super.onOptionsItemSelected(item);
    }
 
    public void onClick(View view) {
        
        TextView textView=(TextView) findViewById(R.id.textView);
        rectangle r=new rectangle(8,8);
        triangle t=new triangle(6,6);
        figure f=new figure(10,10);
        figure figref;
        figref=r;
        textView.setText(textView.getText()+"Площадь равна" + r.area());
        figref=t;
        textView.setText(textView.getText() + "Площадь равна" + t.area());
        figref=f;
        textView.setText(textView.getText() + "Площадь равна" + f.area());
    }
}

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.example.areas;
 
 
import android.widget.TextView;
import android.app.Activity;
 
/**
 * Created by Даниил on 16.01.2015.
 */
public class figure extends Activity {
    double dim1,dim2;
    figure(double a, double b){
        dim1=a;
        dim2=b;
    }
    double area(){
        TextView textView=(TextView) findViewById(R.id.textView);
        textView.setText(textView.getText() + "Вы в фигуре гы");
        return 0;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2015, 21:19     Обращение к textView из другого класса (не MainActivity) в AndroidStudio
Посмотрите здесь:

Android Обращение к элементам активити из другого класса
Android Изменить переменную из класса MainActivity в классе MainRenderer
Android Как реализовать обращение из SurfacView к TextView в основной Активити
Android Обращение к методу другого класса
Android Получение данных из другого класса
Импорт класса из другого проекта Android
Замена фрагмента из другого класса Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
16.01.2015, 22:17     Обращение к textView из другого класса (не MainActivity) в AndroidStudio #2
Не совсем понятно что вам надо найти и где, но крашится от того, что onCreate нету. Не надо в таком случае extends Activity если не хотите второго экрана.
Создавайте поля в figure и считывайте их из MainActivity через методы.
Kastaneda
Форумчанин
Эксперт С++
4468 / 2830 / 224
Регистрация: 12.12.2009
Сообщений: 7,199
Записей в блоге: 1
Завершенные тесты: 1
16.01.2015, 22:41     Обращение к textView из другого класса (не MainActivity) в AndroidStudio #3
В Андроиде нельзя из одного Activity обращатся к UI элементам другого. Что-либо делать со своим элементом может только владелец-Activity.
danek130995
23 / 23 / 1
Регистрация: 25.05.2014
Сообщений: 850
17.01.2015, 14:26  [ТС]     Обращение к textView из другого класса (не MainActivity) в AndroidStudio #4
Kastaneda, Rube, так как же мне из другого класса присвоить элементу textView какой либо текст? Неужели нельзя? Неужели только из MainActivity можно обращаться к textView?
Kastaneda
Форумчанин
Эксперт С++
4468 / 2830 / 224
Регистрация: 12.12.2009
Сообщений: 7,199
Записей в блоге: 1
Завершенные тесты: 1
17.01.2015, 14:45     Обращение к textView из другого класса (не MainActivity) в AndroidStudio #5
Нужно настроить какую-то комуникацию между двумя Activity. В самом простом случае это можно сделать через Intent.
Java
1
intent.putExtra("key", "value");
Чтоб сказать более точно нужно видить как твои activity взаимодействуют.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
17.01.2015, 18:52     Обращение к textView из другого класса (не MainActivity) в AndroidStudio #6
Надо сначала определиться, сколько у вас активити. Второй класс figure это что?
bodya_men
Заблокирован
17.01.2015, 18:58     Обращение к textView из другого класса (не MainActivity) в AndroidStudio #7

Не по теме:

киньте эту фигню.Уйдем на WP!



Добавлено через 12 секунд
а вообще найти приведением типов
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2015, 13:14     Обращение к textView из другого класса (не MainActivity) в AndroidStudio
Еще ссылки по теме:

Обращение к функции находящейся не в MainActivity Android
Функция activity из другого класса Android
Android Как сделать доступ к MainActivity из класса android.app.Instrumentation?
Android Изменить текст TextView другого Фрагмента, не открывая его
Обращение к NULL TextView Android

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

Или воспользуйтесь поиском по форуму:
shulyakyarik
10 / 10 / 3
Регистрация: 28.03.2014
Сообщений: 156
18.01.2015, 13:14     Обращение к textView из другого класса (не MainActivity) в AndroidStudio #8
Если вам нужно использовать TextView из MainActivity в классе figure то просто передайте textView как параметр.
Java
1
2
3
4
double area(TextView textView){
        textView.setText(textView.getText() + "Вы в фигуре гы");
        return 0;
    }
Или можна сделать через конструктор
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class figure {
 
    double dim1,dim2;
    TextView textView;
 
    figure(double a, double b, TextView textView){
        dim1=a;
        dim2=b;
        this.textView = textView;
    }
    double area(){
        textView.setText(textView.getText() + "Вы в фигуре гы");
        return 0;
    }
}
Yandex
Объявления
18.01.2015, 13:14     Обращение к textView из другого класса (не MainActivity) в AndroidStudio
Ответ Создать тему
Опции темы

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