Почему мы используем Button таким образом, чтобы инициализировать.android Button:
b1 = (кнопка) findViewById (R.id.bEdit1);
И почему мы используем (Button) перед findViewById.
Благодаря
Почему мы используем Button таким образом, чтобы инициализировать.android Button:
b1 = (кнопка) findViewById (R.id.bEdit1);
И почему мы используем (Button) перед findViewById.
Благодаря
Это потому, что findViewById
объявляется возвращает View
. Вам нужно понизить возвращаемое значение, чтобы присвоить его переменной Button
. (Я предполагаю, что из кода, который разместил, что b1
будет объявлен Button
.)
Обратите внимание, что если bEdit1
не соответствует Button
в иерархии представлений, то это будет генерировать ClassCastException
. Это должно быть то, что вы ловите во время разработки.
findviewbyId принадлежит классу вида, который является родительским классом. а Button - подкласс? я обряд? –
@lizajohn - Да. 'findViewById' возвращает объект, который является либо' View', либо подклассом 'View', в зависимости от того, как объявлен XML (или как была построена иерархия представления). 'Button' является подклассом' View'. –
спасибо спасибо .... –
(R.id.bEdit1)
- целое число, которое объявляется в R.java
Файл, чтобы мы должны были его включить в Button, чтобы получить ссылку на него.
R.java
файл содержит все объявления переменных.
Мнения могут иметь целочисленный идентификатор, связанный с ними. Эти идентификаторы обычно назначаются в XML-файлах макета и используются для поиска определенных видов в дереве представлений. Общий шаблон является:
Define a Button in the layout file and assign it a unique ID.
<Button
android:id="@+id/bEdit1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_button_text"/>
С OnCreate метод в деятельности, найти кнопку
Button myButton = (Button) findViewById(R.id.bEdit1);
Посмотреть идентификаторы не должны быть уникальными по всему дереву, но это хорошая практика, чтобы гарантировать, что они по крайней мере, уникальны в той части дерева, которое вы ищете.
спасибо. я понял –
При работе с Java
мы делаем что-то вроде этого
JButton mbutt = new JButton("Click_Me");
В коде выше мы Creating
и Assigning
объект типа JButton
к Reference объектов переменной типа JButton
.
В то время как мы работаем с Android
мы делаем что-то вроде этого
Button b1 = (Button) findViewById(R.id.bEdit1);
Здесь мы уже создалиButton
с помощью XML
, и теперь со ссылкой на этуButton object
используя приведенное выше утверждение.
(Button)
является явного приведения сделано из View
типа для Button
типа. То, что мы получаем из findViewById, является View, теперь мы должны конкретно упомянуть, что это за просмотр, вот его Button.
Подпись findViewById выглядит
public final View findViewById (int id)
Что будет, искать вид ребенка с заданным идентификатором. Если это представление имеет данный идентификатор, верните это представление.
final Button b1;
findViewById (R.id.bEdit1); Теперь он будет искать представление, основанное на Id bEdit1
, и вернет вам представление, теперь ваша задача - сместить его в соответствующее представление. , который, как мы делаем это как
b1 = (Button)findViewById(R.id.bEdit1);
Сначала научиться Java для отливки объекта. – Dharmendra