Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 949
1

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

16.01.2015, 21:19. Просмотров 2182. Ответов 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;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2015, 21:19
Ответы с готовыми решениями:

Как изменить Textview из другого класса (класса адаптера RecyclerView)
У меня есть список RecyclerView тоесть этот файл Basket и файл что реализует...

Обращение к ImageView из другого класса
Здравствуйте, проблема в следующем. В MainActivity.class объявил переменные и...

Обращение к методу другого класса
Привет Не пинайте за возможный бред, я учусь) В общем мне необходимо вызвать...

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

Обращение к функции находящейся не в MainActivity
Доброго времени суток! Имеется MainActivity.java и HybridMap.java. Мне...

7
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
16.01.2015, 22:17 2
Не совсем понятно что вам надо найти и где, но крашится от того, что onCreate нету. Не надо в таком случае extends Activity если не хотите второго экрана.
Создавайте поля в figure и считывайте их из MainActivity через методы.
1
Kastaneda
Jesus loves me
Эксперт С++
4943 / 3020 / 346
Регистрация: 12.12.2009
Сообщений: 7,622
Записей в блоге: 2
Завершенные тесты: 1
16.01.2015, 22:41 3
В Андроиде нельзя из одного Activity обращатся к UI элементам другого. Что-либо делать со своим элементом может только владелец-Activity.
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 949
17.01.2015, 14:26  [ТС] 4
Kastaneda, Rube, так как же мне из другого класса присвоить элементу textView какой либо текст? Неужели нельзя? Неужели только из MainActivity можно обращаться к textView?
0
Kastaneda
Jesus loves me
Эксперт С++
4943 / 3020 / 346
Регистрация: 12.12.2009
Сообщений: 7,622
Записей в блоге: 2
Завершенные тесты: 1
17.01.2015, 14:45 5
Нужно настроить какую-то комуникацию между двумя Activity. В самом простом случае это можно сделать через Intent.
Java
1
intent.putExtra("key", "value");
Чтоб сказать более точно нужно видить как твои activity взаимодействуют.
1
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
17.01.2015, 18:52 6
Надо сначала определиться, сколько у вас активити. Второй класс figure это что?
0
bodya_men
Нарушитель
44 / 52 / 8
Регистрация: 01.07.2014
Сообщений: 1,007
Завершенные тесты: 3
17.01.2015, 18:58 7

Не по теме:

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



Добавлено через 12 секунд
а вообще найти приведением типов
0
shulyakyarik
11 / 11 / 3
Регистрация: 28.03.2014
Сообщений: 156
18.01.2015, 13:14 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;
    }
}
1
18.01.2015, 13:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2015, 13:14

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

Как открыть базу данных, созданную в MainActivity, из другого Activity?
Пожалуйста,объясните как можно подробнее, Вот код MainActivity public class...

Обращение к NULL TextView
У меня есть TextView описанный в XML в GridLayout. И есть ListView который...


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

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

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