2016-05-04 7 views
0

scheint ein häufiges Problem mit vielen vorgeschlagenen Lösungen zu sein, aber es gelingt mir nicht, es zu lösen.findViewById gibt Null auf Samsung-Tablet

Alle Aufrufe von findViewById sind erfolgreich, mit Ausnahme der Datei, in der expandableListview erstellt wird. Und es scheint gerätabhängig zu sein. Es funktioniert im Android Studio, auch auf einem Moto E 4G (5.0.2), aber nicht auf einem Samsung Galaxy Tab 8.0 (5.1.1).

Das vollständige Projekt kann auf Github zu finden: https://github.com/JohanDegraeve/helpdiabetes-android Das Modul, das das Problem hat, ist https://github.com/JohanDegraeve/helpdiabetes-android/blob/master/app/src/main/java/com/hippoandfriends/helpdiabetes/Show/Food/ShowSelectedFood.java Wenn jemand das Projekt klonen könnte und versuchen, dieses Problem zu beheben, wäre es sehr hilfreich sein.

Hier gibt die onCreate-Methode, die expandibilitylistview erstellt, null zurück.

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); 
       } 
      }); 
} 

Antwort

0

gelöst

tatsächlich auf einem Tablett ein anderes Layout verwendet wurde, in dem eine ID fehlte

Verwandte Themen