У меня есть очень простой код, который отображает Toast
сообщений на платформе Button
мышиAndroid объекта контекста в пользовательском классе
public class MainActivity extends Activity {
Button clickMe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
clickMe = (Button) findViewById(R.id.button1);
clickMe.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast msg = Toast.makeText(getApplicationContext(), "Hello World !", Toast.LENGTH_LONG);
msg.show();
}
});
}
@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;
}
}
Я задавался вопрос, как я могу получить ссылку на объект контекста просто вызов
getApplicationContext()
внутри Toasts' makeText
метода, так как я никогда не реализованным контекст (который я не могу в любом случае, так как это абстрактное), ни его подклассы.
Может ли кто-нибудь объяснить мне, когда (или где) была создана ссылка и как она появилась в моем классе MainActivity?
Простой пример с несколькими классами для достижения того же будет очень заметным.
Вообще говоря, я не спрашиваю о том, что в моем распоряжении ", потому что я знаю, что у меня есть ссылка на объект Context, удобный внутри моего класса, но" как это было в моем распоряжении "? –