2013-08-22 51 views
-1

BaseAdapter獲得空指針異常在CustomListview的NullPointerException在getview layoutinflator

public View getView(final int position, View convertView, ViewGroup parent){ 
      // TODO Auto-generated method stub 
     ViewHolder holder = null;  

       LayoutInflater layout = getActivity().getLayoutInflater(); 

      convertView = layout.inflate(R.layout.player, null);   

      View vi = convertView; 

      if (vi == null) { 

        holder = new ViewHolder();    

        holder.tProduct = (TextView) vi.findViewById(R.id.product); 
        holder.tTitle = (TextView) vi.findViewById(R.id.title);    

        convertView.setTag(holder);      

      } else { 
       holder = (ViewHolder) vi.getTag(); 
      } 


      holder.tProduct.setText(description.get(position)); 
       holder.tTitle.setText(title.get(position));   

     return vi; 
     } 
+0

後堆棧跟蹤。 –

回答

0

你必須做這樣的事情在你的適配器

創建myInflater變量這樣

private LayoutInflater myInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

然後在代碼中使用,來代替的myInflatergetActivity()您使用。

convertView = myInflater.inflate(R.layout.player, null); 

編輯

對我做的這種方式是最有效的一個,你只得到上下文一次。如果您直接將其放入getView,則每次調用getView時都會訪問它。

0

顯示數據時,試試這個::

LayoutInflater layoutInflater = (LayoutInflater)getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE); 
      View layout = layoutInflater.inflate(R.layout.new_popup_layout, null); 

希望它幫助!

0

第一次嘗試這樣的事情..

public View getView(final int position, View convertView, ViewGroup parent){ 
     // TODO Auto-generated method stub 
    ViewHolder holder;  



     View vi = convertView; 

     if (vi == null) { 
        // here mContext is you got in constructor from activity 
       LayoutInflater layout = mContext.getLayoutInflater(); 

       vi= layout.inflate(R.layout.player,parent,false); 

       holder = new ViewHolder();    

       holder.tProduct = (TextView) vi.findViewById(R.id.product); 
       holder.tTitle = (TextView) vi.findViewById(R.id.title);    

       vi.setTag(holder);      

     } else { 
      holder = (ViewHolder) vi.getTag(); 
     } 


     holder.tProduct.setText(description.get(position)); 
     holder.tTitle.setText(title.get(position));   

    return vi; 
    } 
相關問題