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

Непонятная ошибка - Android

Восстановить пароль Регистрация
 
Baron Rojo
2 / 2 / 0
Регистрация: 21.11.2012
Сообщений: 183
11.01.2016, 11:22     Непонятная ошибка #1
Народ! Понимаю что скорее всего сия проблема совсем уже простая, но все же ее решение мне непонятно. Создал проект. Среда разработки Android Studio 1.4. Проект прост как 5 рублей: при нажатии на кнопку я хочу вывести в TextView случайные элемент массива типа String....
Вот код:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:id="@+id/ll"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android" >
 
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/text"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="generate"
        android:id="@+id/gen"/>
 
    </LinearLayout>

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
package com.example.bjornskau.lesson4;
 
import  android.app.Activity;
 
 
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.text.Editable;
import  android.view.View;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
import java.util.Random;
 
 
public class MainActivity extends Activity {
final Button gen = (Button)findViewById(R.id.gen);
    TextView text=(TextView)findViewById(R.id.text);
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
gen.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Random r= new Random();
     String edt[] =  {"Ivan", "Pedro","Trajanus","Imperio"};
        String str=edt[r.nextInt(3)];
        text.setText(str); //   text.setText("Hello"); - ТОЖЕ НЕ РАБОТАЕТ! 
 
    }
});
 
    }
 
 
 
 
}
Список ошибок во вложениях....
Миниатюры
Непонятная ошибка  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2016, 11:22     Непонятная ошибка
Посмотрите здесь:

непонятная ошибка Android
Непонятная ошибка при запуске приложения в эмуляторе Android
Android Непонятная ошибка
Непонятная ошибка Android
Непонятная ошибка Тоста Android
Android Непонятная ошибка
Непонятная ошибка в Android Studio, парсинг, jsoup Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
не спать!
1882 / 1616 / 500
Регистрация: 12.05.2014
Сообщений: 5,836
Завершенные тесты: 1
11.01.2016, 11:33     Непонятная ошибка #2
все эти строки должны быть внутри метода onCreate()
Java
1
2
3
4
5
6
7
8
9
10
11
        final Button gen = (Button) findViewById(R.id.gen);
        final TextView text = (TextView) findViewById(R.id.text);
        gen.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Random r = new Random();
                String edt[] = {"Ivan", "Pedro", "Trajanus", "Imperio"};
                String str = edt[r.nextInt(3)];
                text.setText(str); //   text.setText("Hello"); - ТОЖЕ НЕ РАБОТАЕТ! 
            }
        });
Valakin
 Аватар для Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 715
11.01.2016, 11:46     Непонятная ошибка #3
TextView text=(TextView)findViewById(R.id.text);

почему не происходит инициализация?

как например у

String edt[] = {"Ivan", "Pedro", "Trajanus", "Imperio"};
Baron Rojo
2 / 2 / 0
Регистрация: 21.11.2012
Сообщений: 183
11.01.2016, 12:03  [ТС]     Непонятная ошибка #4
То есть даже findViewById внутри onCreate?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  protected void onCreate(Bundle savedInstanceState) {
        final Button gen = (Button)findViewById(R.id.gen);
     final    TextView text=(TextView)findViewById(R.id.text);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
gen.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Random r= new Random();
     String edt[] =  {"Ivan", "Pedro","Trajanus","Imperio"};
        String str=edt[r.nextInt(3)];
        text.setText("Hello");
 
    }
});
 
    }
Так тоже не работает. Ошибка та же.
Паблито
не спать!
1882 / 1616 / 500
Регистрация: 12.05.2014
Сообщений: 5,836
Завершенные тесты: 1
11.01.2016, 12:06     Непонятная ошибка #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
вызывать findViewByID можно и из других методов, но не как поле класса
оно по идее выполняется в момент создания самого объекта акитивити, и на тот момент никакие вьющки или текстовые поля еще не инициализированы

все они становятся доступны после вызова setContentView(bla-bla); в onCreate()
Baron Rojo
2 / 2 / 0
Регистрация: 21.11.2012
Сообщений: 183
11.01.2016, 12:22  [ТС]     Непонятная ошибка #6
Хорошо.) Понял. Тогда что здесь не так:

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
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        final Button gen = (Button)findViewById(R.id.gen);
     final    TextView text=(TextView)findViewById(R.id.text);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
gen.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
       Random r= new Random();
     String edt[] = new String[] {"Ivan", "Pedro","Trajanus","Imperio"};
       String str=edt[r.nextInt(3)];
        text.setText(str);
 
    }
});
 
    }
 
 
 
 
}
Valakin
 Аватар для Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 715
11.01.2016, 12:26     Непонятная ошибка #7
Цитата Сообщение от Baron Rojo Посмотреть сообщение
Понял
не похоже, читай предыдущий пост
Паблито
11.01.2016, 12:30
  #8

Не по теме:

все вьюшки мжно будет искать через findVieByID только после setContentView

Baron Rojo
2 / 2 / 0
Регистрация: 21.11.2012
Сообщений: 183
11.01.2016, 12:33  [ТС]     Непонятная ошибка #9
Фух, прошу простить невнимательность.) Разобрался.))))
Valakin
 Аватар для Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 715
11.01.2016, 15:19     Непонятная ошибка #10
получается что инициализация не является методом по сути?
Yandex
Объявления
11.01.2016, 15:19     Непонятная ошибка
Ответ Создать тему
Опции темы

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