我很难找到在Android应用中添加原生广告的方法。
MainActivity类:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.tab1, container, false);
final String[] numbers = {"one","two", "", "three", "four", "five","six","seven" "eight","nine", "ten" "eleven","twelve", "thirteen"};
Integer[] images = {0,1,2,3,4,5,6,7,8,9,10,11,12,13
};
CustomListAdapter adapter=new CustomListAdapter(this.getActivity(), mobileArray, images);
NativeExpressAdView adView = (NativeExpressAdView) rootView.findViewById(R.id.adView);
AdRequest request = new AdRequest.Builder().build();
adView.loadAd(request);
list=(ListView) rootView.findViewById(R.id.list_view);
list.setAdapter(adapter);
CustomListAdapter类:
public class CustomListAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] numbers;
private final Integer[] imgid;
public CustomListAdapter(Activity context, String[] numbers, Integer[] imgid) {
super(context, R.layout.listv, itemname);
// TODO Auto-generated constructor stub
this.context=context;
this.numbers=numbers;
this.imgid=imgid;
}
public View getView(int position,View view,ViewGroup parent) {
LayoutInflater inflater=context.getLayoutInflater();
View rowView=inflater.inflate(R.layout.listv, null,true);
NativeExpressAdView adView = (NativeExpressAdView) rowView.findViewById(R.id.adView);
TextView txtTitle = (TextView) rowView.findViewById(R.id.number);
ImageView imageView = (ImageView) rowView.findViewById(R.id.imgid);
TextView extratxt = (TextView) rowView.findViewById(R.id.textView1);
txtTitle.setText(numbers[position]);
imageView.setImageResource(imgid[position]);
extratxt.setText("Number: "numbers[position]);
return rowView;
};
}
我想在数组中的特定索引中添加本机添加,理想情况下它显示“”。我正在尝试将adView添加到适配器中,但不确定如何执行此操作。
编辑:
listv布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal">
<ImageView
android:id="@+id/imgid"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="5dp" />
<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:padding="2dp"
android:textColor="#4CBE99" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"/>
</LinearLayout>
</LinearLayout>
<com.google.android.gms.ads.NativeExpressAdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
android:layout_gravity="center"
ads:adSize="345x80"
ads:adUnitId="ca-app-pub-3940256099942544/2793859312"></com.google.android.gms.ads.NativeExpressAdView>
答案 0 :(得分:1)
你可以这样试试,
public class CustomListAdapter extends ArrayAdapter<String> {
private NativeExpressAdView adView;
private NativeExpressAdView getAddView() {
if (adView != null) {
return adView;
}
adView = new NativeExpressAdView(context);
adView.setAdUnitId("[your unit id]");
adView.setAdSize(new AdSize(AdSize.FULL_WIDTH, 80));
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
adView.setLayoutParams(layoutParams);
AdRequest request = new AdRequest.Builder().build();
adView.loadAd(request);
return adView;
}
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.layout_add, null, true);
// NativeExpressAdView adView = (NativeExpressAdView) rowView.findViewById(R.id.adView);
LinearLayout linearLayout = (LinearLayout) rowView.findViewById(R.id.addView);
linearLayout.removeAllViews();
TextView txtTitle = (TextView) rowView.findViewById(R.id.number);
ImageView imageView = (ImageView) rowView.findViewById(R.id.imgid);
TextView extratxt = (TextView) rowView.findViewById(R.id.textView1);
txtTitle.setText(numbers[position]);
imageView.setImageResource(imgid[position]);
extratxt.setText("Number: " + numbers[position]);
if (position == 2) {
linearLayout.addView(getAddView());
linearLayout.setVisibility(View.VISIBLE);
} else {
linearLayout.removeAllViews();
linearLayout.setVisibility(View.GONE);
}
return rowView;
}
;
}
Layour xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/imgid"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="5dp"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:padding="2dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#4CBE99"/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/addView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"></LinearLayout>
</LinearLayout>