, по-видимому, представляет собой частую проблему со многими предлагаемыми решениями, но мне не удается ее решить.findViewById возвращает null на планшете Samsung
все вызовы findViewById успешны, кроме тех, где создается расширяемоеListview. И, похоже, он зависит от устройства. Он работает в Android Studio, также на Moto E 4G (5.0.2), но не на Samsung Galaxy Tab 8.0 (5.1.1).
Полный проект можно найти на GitHub: https://github.com/JohanDegraeve/helpdiabetes-android модуль, который имеет проблемы является https://github.com/JohanDegraeve/helpdiabetes-android/blob/master/app/src/main/java/com/hippoandfriends/helpdiabetes/Show/Food/ShowSelectedFood.java Если кто-то может клонировать проект и попытаться исправить это, было бы очень полезно.
Здесь метод onCreate, создающий expandablelistview, возвращает null.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View contentView = LayoutInflater.from(getParent()).inflate(
R.layout.show_selected_food, null);
setContentView(contentView);
// track we come here
ActivityGroupMeal.group.parent
.trackPageView(TrackingValues.pageShowSelectedFood);
expandOrNotDBAdapater = new DbAdapter(this);
expandOrNotDBAdapater.open();
functions = new Functions();
mCalendar = Calendar.getInstance();
btDelete = (Button) findViewById(R.id.buttonDelete);
btSaveTemplate = (Button) findViewById(R.id.buttonSaveAsTemplate);
btLoadTemplate = (Button) findViewById(R.id.buttonLoadTemplate);
btAddSelectedFoodToTracking = (Button) findViewById(R.id.buttonAddSelectedFoodToTracking);
btBack = (Button) findViewById(R.id.buttonBack);
btBack.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
ActivityGroupMeal.group.back();
}
});
expandableListview = (ExpandableListView) findViewById(R.id.expandableListview);
saveFoodAmount = false;
fInsulineRatio = 0f;
fCorrectionFactor = 0f;
fCalculatedInsulineAmount = 0f;
dbHelper = new DbAdapter(this);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
adapter = new CustomExpandableListAdapter(this,
ActivityGroupMeal.group.getFoodData().dbFontSize,
metrics.densityDpi);
listOfSelectedFood = new ArrayList<DBSelectedFood>();
registerForContextMenu(getListView());
btAddSelectedFoodToTracking.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
onClickAddSelectedFoodToTracking();
}
});
btDelete.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// track we come here
ActivityGroupMeal.group.parent.trackEvent(
TrackingValues.eventCategoryMeal,
TrackingValues.eventCategoryMealDeleteSelectedFood);
onClickDeleteAll(v);
}
});
btSaveTemplate.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// track we come here
ActivityGroupMeal.group.parent.trackEvent(
TrackingValues.eventCategoryMeal,
TrackingValues.eventCategoryMealSaveTemplate);
onClickSaveAsTemplate(v);
}
});
btLoadTemplate.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// track we come here
ActivityGroupMeal.group.parent.trackEvent(
TrackingValues.eventCategoryMeal,
TrackingValues.eventCategoryMealLoadTemplate);
onClickLoadTemplate(v);
}
});
expandableListview
.setOnGroupExpandListener(new OnGroupExpandListener() {
public void onGroupExpand(int groupPosition) {
setExpand(1);
}
});
expandableListview
.setOnGroupCollapseListener(new OnGroupCollapseListener() {
public void onGroupCollapse(int groupPosition) {
setExpand(0);
}
});
}