Урок 8. Работаем с элементами экрана из кода
Re: Урок 8. Работаем с элементами экрана из кода
Clean и заново написанный код в сочетании помогли. Спасибо большое.
Один вопрос, имеем в итоге следующий код:
TextView myTextView = (TextView) findViewById(R.id.myText);
myTextView.setText("New text in TextView");
Button myBtn = (Button) findViewById(R.id.myBtn);
myBtn.setText("My button");
myBtn.setEnabled(true);
CheckBox myChb = (CheckBox) findViewById(R.id.myChb);
myChb.setChecked(true);
Вопрос: в MainActivity.java после Button пишется myBtn, что соответствует записи @+id/myBtn, аналогично после CheckBox пишем myChb, а вот после TextView пишется myTextView, хотя в поле id пишем @+id/myText. Упрощу вопрос, почему после TextView пишем не myText, а myTextView?
Один вопрос, имеем в итоге следующий код:
TextView myTextView = (TextView) findViewById(R.id.myText);
myTextView.setText("New text in TextView");
Button myBtn = (Button) findViewById(R.id.myBtn);
myBtn.setText("My button");
myBtn.setEnabled(true);
CheckBox myChb = (CheckBox) findViewById(R.id.myChb);
myChb.setChecked(true);
Вопрос: в MainActivity.java после Button пишется myBtn, что соответствует записи @+id/myBtn, аналогично после CheckBox пишем myChb, а вот после TextView пишется myTextView, хотя в поле id пишем @+id/myText. Упрощу вопрос, почему после TextView пишем не myText, а myTextView?
Re: Урок 8. Работаем с элементами экрана из кода
улыбнул вопрос =)
Код: Выделить всё
TextView myTextView = (TextView) findViewById(R.id.myText);
//myTextView - это объект
//myText - id вьюхи
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 8. Работаем с элементами экрана из кода
rezak90 писал(а):улыбнул вопрос =)Код: Выделить всё
TextView myTextView = (TextView) findViewById(R.id.myText); //myTextView - это объект //myText - id вьюхи
Прочитал еще раз урок, нашел следующую фразу:
"Пишем код:
Button myBtn = (Button) findViewById(R.id.myBtn);
Обратите внимание, что у меня совпадает имя объекта и ID"
С предыдущим вопросом разобрался, спасибо, но тут же возник целый ряд других вопросов, вытекающих из фразы "у меня совпадает имя объекта и ID".
1. Т.е. кнопка Button в Eclipse как объект именуется всегда myBtn и какой бы я не присваивал ID кнопке (например ХХХХХ) запись всегда будет "Button myBtn = (Button) findViewById(R.id.ХХХХХ);" ?
2. Если на первый вопрос ответ Да, то где можно в Эклипсе найти список "названий" объектов? (Например, как тогда будет именоваться объект radioButton?)
3. Если на первый вопрос ответ Нет, то когда мы успели обозвать объект Button - myBtn (не имею ввиду ID, с ID всё понятно)
Button myBtn = (Button)?
Re: Урок 8. Работаем с элементами экрана из кода
1. НЕТ!!
3. можно писать так Button moibutton77777 = (Button) findViewById(R.id.ХХХХХ);
При этом Button - тип, moibutton77777 - желаемое имя переменной данного типа, а (Button) findViewById(R.id.ХХХХХ); - это мы сразу в одном операторе задаем этой переменной начальное значение.
С тем же успехом можно было бы сделать два оператора в разных частях программы:
Button moibutton77777; объявить переменную.
moibutton77777=(Button) findViewById(R.id.ХХХХХ); Присвоить ей значение.
3. можно писать так Button moibutton77777 = (Button) findViewById(R.id.ХХХХХ);
При этом Button - тип, moibutton77777 - желаемое имя переменной данного типа, а (Button) findViewById(R.id.ХХХХХ); - это мы сразу в одном операторе задаем этой переменной начальное значение.
С тем же успехом можно было бы сделать два оператора в разных частях программы:
Button moibutton77777; объявить переменную.
moibutton77777=(Button) findViewById(R.id.ХХХХХ); Присвоить ей значение.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 8. Работаем с элементами экрана из кода
О Господи))) Я предыдущий Ваш комментарий заношу к себе в архив что бы потом поднимать себе настроение хД)
Совет, сначала хотя бы ознакомиться с основами ООП.
Olivka, опередила.
И можно вообще писать что угодно, хоть и так:Button - класс
myBtn - объект
R.id.myBtn - айди ресурса
Код: Выделить всё
Button kiss_my_ass_every_day = (Button) findViewById(R.id.myBtn); //придумал ради примера =)
Olivka, опередила.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 8. Работаем с элементами экрана из кода
Совпадающие имена переменных с их ID часто задают для того, чтоб не выдумывать новые имена и не путаться что это за кнопка.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 8. Работаем с элементами экрана из кода
лучше с основами программирования с нуля, ООП тут вообще не при делах, а то парень запутается))rezak90 писал(а): Совет, сначала хотя бы ознакомиться с основами ООП.
Olivka, опередила.
Ну ты переменнюу со смыслом назвал))) я, конечно , погорячилась с названием)) - надо давать, конечно же, осмысленные имена переменным))
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 8. Работаем с элементами экрана из кода
Код: Выделить всё
(основы программирование) != (основы ООП) !?!
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 8. Работаем с элементами экрана из кода
всем привет) у меня проблема: не работает setEnabled(false) для кнопки... этот метод вызываю в onCreate формы... у вас такое работает, а у меня - не хочкт, в чём прикол?)
суть кода: после авторизации, из БД тянется инфа о пользователе... есть три типа пользователя: админ (1), "что то среднее" (2) и пользователь(3)... для среднего нужно запретить изминение и удаление записей из БД (btnEdit), для юзера - и удаление, и добавление новых записей (btnAdd)...
Код: Выделить всё
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_operation_chooser);
btnView = (Button) findViewById(R.id.btnView);
btnAdd = (Button) findViewById(R.id.btnAdd);
btnEdit = (Button) findViewById(R.id.btnEdit);
btnExit = (Button) findViewById(R.id.btnExit);
Intent intent = getIntent();
privilege = intent.getStringExtra("privilege");
if (privilege == "3" || privilege == "2"){
btnEdit.setEnabled(false);
if (privilege == "3"){
btnAdd.setEnabled(false);
}
}
btnView.setOnClickListener(this);
btnAdd.setOnClickListener(this);
btnEdit.setOnClickListener(this);
btnExit.setOnClickListener(this);
}
Re: Урок 8. Работаем с элементами экрана из кода
кто ж так строки сравнивает ... просто условие в if не заходит
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 8. Работаем с элементами экрана из кода
ух ёёё =))) туплю жестко) у меня просто в начале тип privilege был byte, поменял на строку, что то не подумал))) спасибо)rezak90 писал(а):кто ж так строки сравнивает ... просто условие в if не заходит
Re: Урок 8. Работаем с элементами экрана из кода
1) Что обозначает каждая строчка? Я не могу разобраться в этом начальном MainActivity...
Допустим я хочу написать свою программу, а что, где писать - ни черта не понятно. У автора, в первых уроках, почему то в коде присутствует только один @Override, а в актуальной версии Эклипса создается два @Override. Видимо гугл развивается и всё меняется со временем. Вот я и хочу узнать что обозначает каждый @Override и как применять старый код в новом Эклипсе. И вообще. Что такое @Override? Сколько перерыл - нет нормального объяснения, как, например, в 25 уроке автор объясняет что такое Task на примере браузера.
2) Тот же самый вопрос вставки старого кода и про Layout-файл.
Вот код из урока 6:
Когда я создаю проект и вставляю код, то вылазит куча ошибок. Вот код нового созданного проекта:
Если присмотреться, то видно, что начало кода разное. А как тогда грамотно вставить код из старого Эклипса?
Код: Выделить всё
package ru.startandroid.develop.example;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.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.main, menu);
return true;
}
}
2) Тот же самый вопрос вставки старого кода и про Layout-файл.
Вот код из урока 6:
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Type here:">
</TextView>
<EditText
android:id="@+id/entry"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/label"
android:background="@android:drawable/editbox_background">
</EditText>
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/entry"
android:layout_marginLeft="10dip"
android:text="OK">
</Button>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/ok"
android:layout_toLeftOf="@+id/ok"
android:text="Cancel">
</Button>
</RelativeLayout>
Код: Выделить всё
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
Re: Урок 8. Работаем с элементами экрана из кода
@Override - это аннотация компилятору что переопределяется метод базового класса, якобы что бы компилятор потом не налажал где то (читал что были случаи), вот такое объяснение я находил на stackoverflow.
какие ошибки? но думаю всё винойКогда я создаю проект и вставляю код, то вылазит куча ошибок.
вставляю код
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 8. Работаем с элементами экрана из кода
А как надо?rezak90 писал(а):какие ошибки? но думаю всё винойвставляю код
Re: Урок 8. Работаем с элементами экрана из кода
понимать что пишешь нужно.. когда вставляешь кажется, что должно работать, Но вначале нужно разобраться..koffe писал(а):А как надо?rezak90 писал(а):какие ошибки? но думаю всё винойвставляю код
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 8. Работаем с элементами экрана из кода
писать, а копи-паст ни к чему хорошему не приводит.koffe писал(а):А как надо?rezak90 писал(а):какие ошибки? но думаю всё винойвставляю код
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 8. Работаем с элементами экрана из кода
на счёт @Override нашёл на Java оф объяснение:
@Override: The @Override annotation must be used whenever a method overrides the declaration or implementation from a super-class.
For example, if you use the @inheritdocs Javadoc tag, and derive from a class (not an interface), you must also annotate that the method @Overrides the parent class's method.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 8. Работаем с элементами экрана из кода
не дружу с английским(((((((((
Re: Урок 8. Работаем с элементами экрана из кода
translate.google.rukoffe писал(а):не дружу с английским(((((((((
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена