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

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

Войти
Регистрация
Восстановить пароль
 
Baron Rojo
2 / 2 / 0
Регистрация: 21.11.2012
Сообщений: 187
#1

Непонятная ошибка - Программирование Android

11.01.2016, 11:22. Просмотров 167. Ответов 9
Метки нет (Все метки)

Народ! Понимаю что скорее всего сия проблема совсем уже простая, но все же ее решение мне непонятно. Создал проект. Среда разработки 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"); - ТОЖЕ НЕ РАБОТАЕТ! 
 
    }
});
 
    }
 
 
 
 
}
Список ошибок во вложениях....
0
Миниатюры
Непонятная ошибка  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2016, 11:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Непонятная ошибка (Программирование Android):

Непонятная ошибка - Программирование Android
Error:Error: Duplicate resources: D:\Education\Программы\passwordgenerator\app\src\main\res\drawable\yandex.png:drawable/yandex,...

Непонятная ошибка - Программирование Android
JDK и SDK указаны, но Идея ругается на джавовские методы..

непонятная ошибка - Программирование Android
Это мое первое приложение для Android, да и вообще на Java, так что ошибки могут быть самые бредовые. текст ошибки: 05-06...

Непонятная ошибка - Программирование Android
Приложение на каких устройствах работает, а на каких то нет! У меня HTC One V, на нем работает. Так же на: galaxy tab 2, galaxy s 2. А...

Непонятная ошибка Тоста - Программирование Android
Пишу свой лонгклик (управляемая длительность, XY диапазон отклонения пальца). Переделываю обработчик OnToch(). С Log.i() все работает. Если...

Непонятная ошибка при запуске приложения в эмуляторе - Программирование Android
Использую: Eclipse Juno Service Release 1. Build id: 20120920-0800 Android SDK Manager. Revision 21.0.1 Java Developers Kit...

9
Pablito
2500 / 1984 / 619
Регистрация: 12.05.2014
Сообщений: 6,926
Завершенные тесты: 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"); - ТОЖЕ НЕ РАБОТАЕТ! 
            }
        });
1
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
11.01.2016, 11:46 #3
TextView text=(TextView)findViewById(R.id.text);

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

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

String edt[] = {"Ivan", "Pedro", "Trajanus", "Imperio"};
0
Baron Rojo
2 / 2 / 0
Регистрация: 21.11.2012
Сообщений: 187
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");
 
    }
});
 
    }
Так тоже не работает. Ошибка та же.
0
Pablito
2500 / 1984 / 619
Регистрация: 12.05.2014
Сообщений: 6,926
Завершенные тесты: 1
11.01.2016, 12:06 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
вызывать findViewByID можно и из других методов, но не как поле класса
оно по идее выполняется в момент создания самого объекта акитивити, и на тот момент никакие вьющки или текстовые поля еще не инициализированы

все они становятся доступны после вызова setContentView(bla-bla); в onCreate()
0
Baron Rojo
2 / 2 / 0
Регистрация: 21.11.2012
Сообщений: 187
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);
 
    }
});
 
    }
 
 
 
 
}
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
11.01.2016, 12:26 #7
Цитата Сообщение от Baron Rojo Посмотреть сообщение
Понял
не похоже, читай предыдущий пост
0
Pablito
11.01.2016, 12:30
  #8

Не по теме:

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

0
Baron Rojo
2 / 2 / 0
Регистрация: 21.11.2012
Сообщений: 187
11.01.2016, 12:33  [ТС] #9
Фух, прошу простить невнимательность.) Разобрался.))))
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
11.01.2016, 15:19 #10
получается что инициализация не является методом по сути?
0
11.01.2016, 15:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2016, 15:19
Привет! Вот еще темы с ответами:

Непонятная ошибка в Android Studio, парсинг, jsoup - Программирование Android
Прошу помощи, ошибка, возможно будет банальной, т.к. это мое первое приложение в Android Studio. В общем у меня стоит задача реализовать...

Непонятная ошибка - Unity, Unity3D
Привет! Изучаю видео уроки по РПГ игре. У автора в коде нет никаких ошибок. У меня же есть. Помогите пожалуйста разобраться. using...

Непонятная ошибка - Delphi
procedure TForm1.Exalot(); var i, j, i1, f, shag : Integer; begin f :=30; i1 :=0; shag :=10; ...

Непонятная ошибка - Delphi БД
Помогите, пожалуйста, выяснить причину ошибки в проекте https://yadi.sk/d/bAxxYRFKhLCxn Делал в Embarcadero XE7


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

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

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