将adView添加到我的片段的getView中时出现逻辑错误

时间:2014-03-31 04:22:52

标签: android listview android-fragments android-listview adview

我发现在我的getView顶部实施了横幅广告时出现了逻辑错误。问题是横幅覆盖了我的listView的第一项。其他一切似乎都按预期工作。以下是我的代码。

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
            Log.i("testing", "pos " + position);
           if (position == 0)  {
              if (convertView instanceof AdView) {
        // Don’t instantiate new AdView, reuse old one
                 return convertView;
         } else {

                Context mainActivity = getActivity();
                adView = new AdView(mainActivity);
                adView.setAdUnitId(AD_UNIT_ID);
                adView.setAdSize(AdSize.BANNER);    
        // Convert the default layout parameters so that they play nice with
        // ListView.

                float density = mainActivity.getResources().getDisplayMetrics().density;
                int height = Math.round(AdSize.BANNER.getHeight() * density);
                AbsListView.LayoutParams params = new AbsListView.LayoutParams(
                AbsListView.LayoutParams.FILL_PARENT,
                height);
                adView.setLayoutParams(params);
            AdRequest adRequest = new AdRequest.Builder()
                    .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                    .addTestDevice("TEST_DEVICE_ID")
                    .build();
                adView.loadAd(adRequest);
            return adView;
            }
           } else {
                convertView = getSherlockActivity().getLayoutInflater()
                      .inflate(R.layout.list_item_bxied,null);
            // Enter the view of this Bxied Attack
            // If we weren't given a view, inflate one
                // Enter the view of this Bxied Attack
                 Bxied c = (Bxied)getItem(position);
                 TextView titleTextView =
                     (TextView)convertView.findViewById(R.id.bxied_list_item_titleTextView);
                 titleTextView.setText(c.getTitle());
                 TextView dateTextView =
                     (TextView)convertView.findViewById(R.id.bxied_list_item_dateTextView);
                 dateTextView.setText(DateFormat.format("EEEE, MMM dd, yyyy  hh : mm a", c.getDate()).toString());
             CheckBox resolvedCheckBox =
                     (CheckBox)convertView.findViewById(R.id.bxied_list_item_resolvedCheckBox);
                 resolvedCheckBox.setChecked(c.isResolved());
            }
            return convertView;
         }     
      }

如果你知道答案,如果你能包含一些可以解决这个问题的代码,我会很感激。列表中的第一项应位于广告标题下。

这是XML:

 <code>  
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android"   
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     >

   <CheckBox 
     android:id="@+id/bxied_list_item_resolvedCheckBox"
     android:layout_width="wrap_content"
     android:layout_height="match_parent" 

     android:gravity="center"
     android:layout_alignParentRight="true"
     android:enabled="false"
     android:focusable="false"
     android:padding="2dp"
     /    
   <TextView 
     android:id="@+id/bxied_list_item_titleTextView"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_toLeftOf="@id/bxied_list_item_resolvedCheckBox" 
     android:textStyle="bold"
     android:paddingLeft="4dp"
     android:paddingRight="4dp"
     android:text="@string/bxied_title"
     />
   <TextView 
     android:id="@+id/bxied_list_item_dateTextView"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_below="@id/bxied_list_item_titleTextView" 
     android:layout_toLeftOf="@id/bxied_list_item_resolvedCheckBox" 
     android:paddingLeft="4dp"
     android:paddingRight="4dp"
     android:top="4dp"
     android:text="Date"
     />

   </RelativeLayout>
</code>

0 个答案:

没有答案