2016-03-25 1 views
2
  • Le findViewById() retourne null dans la classe de fragment. Le Toast pour la ImageButton montre quelque chose, mais l'objet pour Switch-à-dire mySwitch retours null ... s'il vous plaît aider ....findViewById renvoie null dans la classe de fragment

    public MyAdapter(Context context, List<ListItems> values) { 
    
        super(context, R.layout.list_item, values); 
    } 
    
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    
        View v = convertView; 
        LayoutInflater inflater = LayoutInflater.from(getContext()); 
    
        if(v == null){ 
         v = inflater.inflate(R.layout.list_item, parent, false); 
        } 
    
        ListItems currLoc = LocationList.get(position); 
    
        TextView theTextView = (TextView) v.findViewById(R.id.list_item_textview); 
        theTextView.setText(currLoc.getLocation()); 
    
        TextView theTextView2 = (TextView) v.findViewById(R.id.list_item_textviewP); 
        theTextView2.setText(currLoc.getProfile()); 
    
        ImageView theImageView = (ImageView) v.findViewById(R.id.imageview1); 
        Toast.makeText(getActivity(), "image view="+theImageView, Toast.LENGTH_SHORT).show(); 
        theImageView.setImageResource(R.drawable.bullet); 
    
    
        Switch mySwitch=(Switch) v.findViewById(R.id.onoff); 
        Toast.makeText(getActivity(), ""+mySwitch, Toast.LENGTH_SHORT).show(); 
    
    
        return v; 
    } 
    
+0

S'il vous plaît Montrer xml ici –

+0

Et l'erreur s'il vous plaît. Et ce n'est pas votre 'fragment class', c'est votre classe' adapter' que –

+0

remplace 'LayoutInflater inflater = LayoutInflater.from (getContext());' par 'LayoutInflater inflater = ((LayoutInflater) context.getSystemService (Context.LAYOUT_INFLATER_SERVICE)) ; ' – ELITE

Répondre

0

Je l'ai .... j'avais défini le findViewById dans onGetView Je devais le déclarer sur OnCreateView Désolé .....

+1

Fellow des critiques: ceci est une réponse. C'est l'OP expliquant ce qui a causé le problème. –

+0

Je pensais que ** onCreateView ** retourne juste la mise en page. Je ne savais pas que vous appeliez 'findViewById' à l'intérieur. –