2014-12-01 6 views
0

В андроиде есть некоторые методы обратного вызова, такие как «onCreate» или «onClick».назначение параметров метода обратного вызова в android

У меня есть вопрос о них. Когда эти методы обратного вызова отображаются в программах, , их параметры не назначаются программистом. Должны ли они быть назначены первыми?

Например,

Bundle saveInstanceState = something; 
//assign parameter saveInstanceState first. (yet not assigned in real case) 
public void onCreate(Bundle saveInstanceState) { 
// do something ..... 
}; 

или

View v = something; 
//assign parameter v first. (yet not assgned in real case) 
public void onClick(View v) { 
// do something ..... 
}; 

Все коды, которые я прочитал до сих пор не назначен "saveInstanceState" (в OnCreate) или "V" (из OnClick) программистами.

Означает ли это, что «андроид сам назначит эти параметры методов обратного вызова»? Если да, все ли параметры всех методов обратного вызова в одном и том же случае?

Например, «данные и камера в onPictureTaken (байт [] данные, камера камеры) {};", автоматически назначаются системой android и программисту не нужно их назначать?

Я пока не могу найти относительные детали на веб-сайте разработчика Android. Если параметр присваивается системой, а не программистом, , почему нет относительного руководства или примечания об этом в документе веб-сайта разработчика Android?

Спасибо за ответ.

+0

Вам не нужно назначать эти параметры, нет. Вы можете просто использовать их, хотя имейте в виду, что в некоторых случаях они могут быть пустыми! – Blacklight

ответ

0

Параметры функции назначаются вызывающей функцией. Пример:

int x = 0; 

public void test(int x) 
{ 
    System.out.println(x); 
    System.out.println(this.x); 
} 

test(2); 
//prints 
//2 
//0 

Так что в вашем случае

View v = something; 
//assign parameter v first. (yet not assgned in real case) 
public void onClick(View v) { 
// do something ..... 
}; 

против и this.v будет ссылаться на различные объекты в теле метода OnClick.

+0

Я мог бы понять, что вы имеете в виду. – mizuc

+0

Я мог бы понять, что вы имели в виду. Программист определяет методы обратного вызова. Но вызывающим методом является система. Таким образом, система будет назначать параметры при вызове методов обратного вызова. Программисту не нужно ничего делать с назначением этих параметров. – mizuc

Смежные вопросы