Страница 5 из 14
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 30 мар 2013, 18:00
Lkami
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?
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 30 мар 2013, 18:26
rezak90
улыбнул вопрос =)
Код: Выделить всё
TextView myTextView = (TextView) findViewById(R.id.myText);
//myTextView - это объект
//myText - id вьюхи
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 01 апр 2013, 06:30
Lkami
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. Работаем с элементами экрана из кода
Добавлено: 01 апр 2013, 07:14
Foenix
1. НЕТ!!
3. можно писать так Button moibutton77777 = (Button) findViewById(R.id.ХХХХХ);
При этом Button - тип, moibutton77777 - желаемое имя переменной данного типа, а (Button) findViewById(R.id.ХХХХХ); - это мы сразу в одном операторе задаем этой переменной начальное значение.
С тем же успехом можно было бы сделать два оператора в разных частях программы:
Button moibutton77777; объявить переменную.
moibutton77777=(Button) findViewById(R.id.ХХХХХ); Присвоить ей значение.
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 01 апр 2013, 07:15
rezak90
О Господи))) Я предыдущий Ваш комментарий заношу к себе в архив что бы потом поднимать себе настроение хД)
Button - класс
myBtn - объект
R.id.myBtn - айди ресурса
И можно вообще писать что угодно, хоть и так:
Код: Выделить всё
Button kiss_my_ass_every_day = (Button) findViewById(R.id.myBtn); //придумал ради примера =)
Совет, сначала хотя бы ознакомиться с основами ООП.
Olivka,
опередила.
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 01 апр 2013, 07:16
Foenix
Совпадающие имена переменных с их ID часто задают для того, чтоб не выдумывать новые имена и не путаться что это за кнопка.
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 01 апр 2013, 07:18
Foenix
rezak90 писал(а):
Совет, сначала хотя бы ознакомиться с основами ООП.
Olivka,
опередила.
лучше с основами программирования с нуля, ООП тут вообще не при делах, а то парень запутается))
Ну ты переменнюу со смыслом назвал))) я, конечно , погорячилась с названием)) - надо давать, конечно же, осмысленные имена переменным))
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 01 апр 2013, 08:41
rezak90
Код: Выделить всё
(основы программирование) != (основы ООП) !?!
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 01 апр 2013, 22:09
Lkami
Вас понял.
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 07 апр 2013, 15:01
erNesto
всем привет) у меня проблема: не работает setEnabled(false) для кнопки... этот метод вызываю в onCreate формы... у вас такое работает, а у меня - не хочкт, в чём прикол?)
Код: Выделить всё
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);
}
суть кода: после авторизации, из БД тянется инфа о пользователе... есть три типа пользователя: админ (1), "что то среднее" (2) и пользователь(3)... для среднего нужно запретить изминение и удаление записей из БД (btnEdit), для юзера - и удаление, и добавление новых записей (btnAdd)...
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 07 апр 2013, 15:37
rezak90
кто ж так строки сравнивает
... просто условие в if не заходит
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 07 апр 2013, 15:44
erNesto
rezak90 писал(а):кто ж так строки сравнивает
... просто условие в if не заходит
ух ёёё
=))) туплю жестко) у меня просто в начале тип privilege был byte, поменял на строку, что то не подумал))) спасибо)
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 16 май 2013, 22:14
koffe
1) Что обозначает каждая строчка? Я не могу разобраться в этом начальном MainActivity...
Код: Выделить всё
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;
}
}
Допустим я хочу написать свою программу, а что, где писать - ни черта не понятно. У автора, в первых уроках, почему то в коде присутствует только один @Override, а в актуальной версии Эклипса создается два @Override. Видимо гугл развивается и всё меняется со временем. Вот я и хочу узнать что обозначает каждый @Override и как применять старый код в новом Эклипсе. И вообще. Что такое @Override? Сколько перерыл - нет нормального объяснения, как, например, в 25 уроке автор объясняет что такое Task на примере браузера.
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. Работаем с элементами экрана из кода
Добавлено: 16 май 2013, 22:34
rezak90
@Override - это аннотация компилятору что переопределяется метод базового класса, якобы что бы компилятор потом не налажал где то (читал что были случаи), вот такое объяснение я находил на stackoverflow.
Когда я создаю проект и вставляю код, то вылазит куча ошибок.
какие ошибки? но думаю всё виной
вставляю код
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 18 май 2013, 18:29
koffe
rezak90 писал(а):какие ошибки? но думаю всё виной
вставляю код
А как надо?
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 18 май 2013, 21:27
Foenix
koffe писал(а):rezak90 писал(а):какие ошибки? но думаю всё виной
вставляю код
А как надо?
понимать что пишешь нужно.. когда вставляешь кажется, что должно работать, Но вначале нужно разобраться..
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 19 май 2013, 05:10
rezak90
koffe писал(а):rezak90 писал(а):какие ошибки? но думаю всё виной
вставляю код
А как надо?
писать, а копи-паст ни к чему хорошему не приводит.
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 21 май 2013, 13:07
rezak90
на счёт @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.
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 21 май 2013, 13:27
koffe
не дружу с английским(((((((((
Re: Урок 8. Работаем с элементами экрана из кода
Добавлено: 21 май 2013, 13:40
rezak90
koffe писал(а):не дружу с английским(((((((((
translate.google.ru