В андроида класса активности, я видел мостики к Button
файлу XML и настройке его для мыши слушателя использует findViewById()
:Разницы между кнопкой и RadioGroup в ссылках
public class MyClass1 extends Activity implements OnClickListener {
Button b;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.photo);
b = (Button) findViewById(R.id.button1); //This is where I have question
b.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
break;
case R.id.button2:
break;
}
}
}
Но что касается ссылающийся на RadioGroup
(в другом классе активности), он был не направлен на объект по findViewById()
, как это было для Button
:
public class MyClass2 extends Activity implements OnCheckedChangeListener {
RadioGroup rg;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.photo);
//Why isn't this here? --> rg = (RadioGroup) findViewById(R.id.radiogroup);
rg.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
switch (checkedId) {
case R.id.rBad:
break;
case R.id.rGood:
break;
}
}
}
Я имею в виду как onClick()
и onCheckedChanged()
, на которые ссылаются идентификаторы объектов.
Итак, почему b = (Button) findViewById(R.id.button1);
объявлен в первом коде snippt, а rg = (RadioGroup) findViewById(R.id.radiogroup);
- не во втором фрагменте.
Это что-то связанное с RadioGroup
или оно применимо и к другим объектам?
Разве пример RadioGroup не создает исключение NullPointerException, поскольку rg никогда не назначается? – Finnboy11
У второго фрагмента кода есть ошибка - он определенно должен иметь вызов 'findViewById'. Обратите внимание, что есть библиотеки инъекций для просмотра, такие как [ButterKnife] (http://jakewharton.github.io/butterknife/), которые не требуют этого, но ваш пример здесь не содержит никакого кода, необходимого для этого. –
@ Finnboy11 Я просто вижу этот код в учебнике и не запускаю его. – DummyBeginner