2016-05-04 1 views
0

semble être un problème fréquent avec de nombreuses solutions proposées, mais je ne parviens pas à le résoudre.findViewById renvoie null sur la tablette Samsung

tous les appels à findViewById sont réussis sauf celui où expandableListview est créé. Et il semble être dépendant de l'appareil. Il fonctionne dans Android Studio, également sur un Moto E 4G (5.0.2) mais pas sur un Samsung Galaxy Tab 8.0 (5.1.1).

Le projet complet est disponible sur GitHub: https://github.com/JohanDegraeve/helpdiabetes-android Le module qui a le problème est https://github.com/JohanDegraeve/helpdiabetes-android/blob/master/app/src/main/java/com/hippoandfriends/helpdiabetes/Show/Food/ShowSelectedFood.java Si quelqu'un pouvait cloner le projet et essayer de résoudre ce problème, il serait très utile.

Ici, la méthode onCreate, en créant expandeliste liste renvoie 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); 
       } 
      }); 
} 

Répondre

0

résolu

fait sur une tablette une autre mise en page a été utilisé où un identifiant était absent