Java 如何将AdMod本机广告与回收商视图一起使用?
我想在我的应用程序的主要活动中使用google Admob显示广告。我已经从谷歌开发者网站获得了显示广告所需的所有代码,但当我运行我的应用程序时,广告并没有显示出来。我不知道发生了什么问题: 主要活动:Java 如何将AdMod本机广告与回收商视图一起使用?,java,android,android-recyclerview,admob,Java,Android,Android Recyclerview,Admob,我想在我的应用程序的主要活动中使用google Admob显示广告。我已经从谷歌开发者网站获得了显示广告所需的所有代码,但当我运行我的应用程序时,广告并没有显示出来。我不知道发生了什么问题: 主要活动: package com.ali.nokt_nokt.mdhk.glopal; import android.os.Bundle; import android.os.CountDownTimer; import android.support.v7.app.AppCompatActivity
package com.ali.nokt_nokt.mdhk.glopal;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.Menu;
import android.view.MenuItem;
import com.ali.nokt_nokt.mdhk.R;
import com.ali.nokt_nokt.mdhk.adaptr.Post;
import com.ali.nokt_nokt.mdhk.adaptr.PostsAdapter;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.http.GET;
public MainActivity extends AppCompatActivity
{
RecyclerView recyclerview;
PostsAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.face);
//Set back button on action bar
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
recyclerview = (RecyclerView) findViewById(R.id.recycler_view);
recyclerview.setLayoutManager(new LinearLayoutManager(this));
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://www.tagarb.esy.es/")
.addConverterFactory(GsonConverterFactory.create())
.build();
retrofit.create(API.class).getbast_B().enqueue(new Callback<List<Post>>() {
@Override
public void onResponse(Call<List<Post>> call, Response<List<Post>> response) {
final List<Post> postList = response.body();
adapter = new PostsAdapter(postList, Bast_2.this);
recyclerview.setAdapter(adapter);
final Post post = new Post();
post.setTitle("لحن الحياه");
post.setBody("وقـالت لـي الأرضُ - لمـا سـألت:\tأيــا أمُّ هــل تكــرهين البشــرْ?\n" +
"أُبــارك فـي النـاس أهـلَ الطمـوح\tومــن يســتلذُّ ركــوبَ الخــطرْ\n" +
"وألْعــنُ مــن لا يماشــي الزمـانَ\tويقنـــع بــالعيْشِ عيشِ الحجَــرْ\n" +
"هــو الكــونُ حـيٌّ, يحـبُّ الحيـاة\tويحــتقر المَيْــتَ, مهمــا كــبُرْ\n" +
"فـلا الأفْـق يحـضن ميْـتَ الطيـورِ\tولا النحــلُ يلثــم ميْــتَ الزهـرْ\n" +
"ولــولا أمُومــةُ قلبِــي الــرّؤوم\tلَمَــا ضمّــتِ الميْـتَ تلـك الحُـفَرْ\n" +
"فــويلٌ لمــن لــم تشُــقه الحيـا\tة, مِــن لعنــة العــدم المنتصِـرْ!");
new CountDownTimer(4000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
postList.set(0, post);
adapter.notifyItemChanged(0);
}
}.start();
}
@Override
public void onFailure(Call<List<Post>> call, Throwable t) {
}
});
}
public interface API {
@GET("bast_B.php")
Call<List<Post>> getbast_B();
}
//Options Menu Create
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
//Options Menu on Item Click
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
//Take back to Home Screen on pressing back button
if (id == android.R.id.home) {
//Simply finish this activity
Bast_2.this.finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
package com.ali.nokt_nokt.mdhk.glopal;
导入android.os.Bundle;
导入android.os.CountDownTimer;
导入android.support.v7.app.AppActivity;
导入android.support.v7.widget.LinearLayoutManager;
导入android.support.v7.widget.RecyclerView;
导入android.view.Menu;
导入android.view.MenuItem;
import com.ali.nokt_nokt.mdhk.R ;;
import com.ali.nokt_nokt.mdhk.adapter.Post;
导入com.ali.nokt_nokt.mdhk.adapter.PostsAdapter;
导入com.google.android.gms.ads.AdRequest;
导入com.google.android.gms.ads.AdView;
导入com.google.android.gms.ads.MobileAds;
导入java.util.List;
2.电话;;
2.回拨;
2.回应;;
进口改装2.改装;
进口改装2.converter.gson.GsonConverterFactory;
导入文件2.http.GET;
公共MainActivity扩展了AppCompative活动
{
回收视图回收视图;
后置适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局面);
//操作栏上的“后退”按钮
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
recyclerview=(recyclerview)findViewById(R.id.recycler\u视图);
recyclerview.setLayoutManager(新的LinearLayoutManager(本));
改装改装=新改装.Builder()
.baseUrl(“http://www.tagarb.esy.es/")
.addConverterFactory(GsonConverterFactory.create())
.build();
create(API.class).getbast_B().enqueue(new Callback()){
@凌驾
公共void onResponse(调用、响应){
最终列表postList=response.body();
适配器=新的PostsAdapter(postList,Bast_2.this);
recyclerview.setAdapter(适配器);
最终职位=新职位();
职位名称(“职位名称”);
在本校的各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各各ـْ?\n“+
从15157上下半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半半1604.——————————————————————“——”+
自1608日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方ش+
自1607日日日日日日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方7.مـاكـبُْ\n”+
在本1601月上,在本1601月上,在本1601月上的自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自自ـ+
自1608年8月日日日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方َْتلكالُفَْْ+
本1606月月日日日日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方ننتِنْْ!);
新的倒计时(40001000){
@凌驾
公共void onTick(长毫秒未完成){
}
@凌驾
公共无效onFinish(){
postList.set(0,post);
适配器。notifyItemChanged(0);
}
}.start();
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
}
});
}
公共接口API{
@获取(“bast_B.php”)
调用getbast_B();
}
//选项菜单创建
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(右菜单菜单菜单主菜单);
返回true;
}
//单击项目上的选项菜单
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
int id=item.getItemId();
//按后退按钮返回主屏幕
if(id==android.R.id.home){
//只需完成此活动
Bast_2.this.finish();
返回true;
}
返回super.onOptionsItemSelected(项目);
}
}
这是MyAdapter.java:
package com.ali.nokt_nokt.mdhk.adaptr;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.ali.nokt_nokt.mdhk.R;
import java.util.List;
/**
* Created by developerhendy on 9/8/16.
* © 2016.
*/
public class PostsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private List<Post> posts;
private Context context;
public PostsAdapter(List<Post> posts, Context ctx) {
this.posts = posts;
this.context = ctx;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == 456) {
return new AdsHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.ads_row, parent, false));
} else {
return new PostHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.post_row, parent, false));
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
int viewType = getItemViewType(position);
if (viewType == 456) {
AdsHolder adsHolder = (AdsHolder) holder;
// if we wanna do some thing with ads row for example change img we do it here
} else {
PostHolder postHolder = (PostHolder) holder;
if (viewType == 123) {
postHolder.postLayout.setBackgroundColor(Color.parseColor("#23c486"));
postHolder.postTitle.setTextColor(Color.parseColor("#ffffff"));
postHolder.postDesc.setTextColor(Color.parseColor("#ffffff"));
}
final Post post = posts.get(position);
postHolder.postTitle.setText(post.getTitle());
postHolder.postDesc.setText(post.getBody());
}
}
@Override
public int getItemCount() {
return posts.size();
}
@Override
public int getItemViewType(int position) {
if (position == 2) {
return 123;
} else if (position == 3) {
return 456;
} else {
return super.getItemViewType(position);
}
}
public class AdsHolder extends RecyclerView.ViewHolder {
public AdsHolder(View itemView) {
super(itemView);
}
}
public class PostHolder extends RecyclerView.ViewHolder {
private TextView postTitle;
private TextView postDesc;
private LinearLayout postLayout;
public PostHolder(final View itemView) {
super(itemView);
postTitle = (TextView) itemView.findViewById(R.id.post_title);
postDesc = (TextView) itemView.findViewById(R.id.post_desc);
postLayout = (LinearLayout) itemView.findViewById(R.id.row_container);
postTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Post post = posts.get(getAdapterPosition());
Toast.makeText(context, "You clicked on " + post.getTitle(), Toast.LENGTH_SHORT).show();
}
});
postLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Post post = posts.get(getAdapterPosition());
Intent i = new Intent(context, Pag.class);
i.putExtra("Titler", post.getTitle());
i.putExtra("Desc", post.getBody());
context.startActivity(i);
}
});
}
}
}
package com.ali.nokt_nokt.mdhk.adapter;
导入android.content.Context;
导入android.content.Intent;
导入android.graphics.Color;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.LinearLayout;
导入android.widget.TextView;
导入android.widget.Toast;
import com.ali.nokt_nokt.mdhk.R ;;
导入java.util.List;
/**
*由developerEndy于2016年9月8日创建。
* © 2016.
*/
公共类PostsAdapter扩展了RecyclerView.Adapter{
私人名单员额;
私人语境;
公共PostsAdapter(列表帖子,上下文ctx){
这个.posts=posts;
this.context=ctx;
}
@凌驾
public RecyclerView.ViewHolder onCreateViewHolder(视图组父级,int-viewType){
如果(视图类型==456){
返回新的AdsHolder(LayoutInflater.from(parent.getContext())。充气(R.layout.ads_行,parent,false));
}否则{
返回新的PostHolder(LayoutInflater.from(parent.getContext()).flate(R.layout.post_行,parent,false));
}
}
@凌驾
BindViewHolder上的公共无效(RecyclerView.ViewHolder,int位置){
int viewType=getItemViewType(位置);
如果(视图类型==456){
美国存托股持有人=(美国存托股持有人)持有人;
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ececec"
tools:context="com.ali.nokt_nokt.mdhk.glopal.Bast_2">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:layout_width="360dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="8dp"
android:layout_height="132dp">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="360dp"
android:layout_height="132dp"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>
</android.support.v7.widget.CardView>