Java Admob间质性ad在片段转换为活性时未显示
到目前为止,我还不知道android应用程序中的admob。这是我第一次 下面是DashboardFragment.javaJava Admob间质性ad在片段转换为活性时未显示,java,android-studio,android-layout,android-fragments,admob,Java,Android Studio,Android Layout,Android Fragments,Admob,到目前为止,我还不知道android应用程序中的admob。这是我第一次 下面是DashboardFragment.java public class DashboardFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener{ private DashboardViewModel dashboardViewModel; public static final String API_KEY= "e96f2
public class DashboardFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener{
private DashboardViewModel dashboardViewModel;
public static final String API_KEY= "e96f2eb28f2540bf98757628abd274b3";
private RecyclerView recyclerView;
private RecyclerView.LayoutManager layoutManager;
private List<Article> articles = new ArrayList<>();
private Adapter adapter;
private String TAG = DashboardFragment.class.getSimpleName();
private SwipeRefreshLayout swipeRefreshLayout;
private RelativeLayout errorLayout;
private ImageView errorImage;
private TextView errorTitle,errorMessage;
private Button btnRetry;
private Switch myswitch;
private InterstitialAd interstitialAd;
@SuppressLint("ResourceAsColor")
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
dashboardViewModel =
ViewModelProviders.of(this).get(DashboardViewModel.class);
View root = inflater.inflate(R.layout.fragment_dashboard, container, false);
Toast.makeText(getActivity(), "Origin News", Toast.LENGTH_SHORT).show();
super.onCreate(savedInstanceState);
swipeRefreshLayout=root.findViewById(R.id.swipe_refresh_layout);
swipeRefreshLayout.setOnRefreshListener(this);
swipeRefreshLayout.setColorSchemeColors(R.color.colorAccent);
recyclerView = root.findViewById(R.id.recyclerView);
layoutManager = new LinearLayoutManager(getActivity() );
recyclerView.setLayoutManager(layoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setNestedScrollingEnabled(false);
setHasOptionsMenu(true);
onLoadingSwipeRefresh("");
errorLayout = root.findViewById(R.id.errorLayout);
errorImage = root.findViewById(R.id.errorImage);
errorTitle = root.findViewById(R.id.errorTitle) ;
errorMessage = root.findViewById(R.id.errorMessage);
btnRetry = root.findViewById(R.id.btnRetry);
MobileAds.initialize(getActivity(),"ca-app-pub-6862851420275633~8406415898");
interstitialAd = new InterstitialAd(getActivity());
interstitialAd.setAdUnitId("ca-app-pub-6862851420275633/3227253163");
interstitialAd.loadAd(new AdRequest.Builder().build());
return root;
}
public void LoadJson(final String keyword){
errorLayout.setVisibility(View.GONE);
swipeRefreshLayout.setRefreshing(true);
final ApiInterface apiInterface = ApiClient.getApiClient().create(ApiInterface.class);
String country = Utils.getCountry();
String language =Utils.getLanguage();
Call<News> call;
if(keyword.length()>0){
call = apiInterface.getNewsSearch(keyword,language,"publishedAt",API_KEY);
}else{
call= apiInterface.getNews(country,API_KEY);
}
call.enqueue(new Callback<News>() {
@Override
public void onResponse(Call<News> call, Response<News> response) {
if(response.isSuccessful() && response.body().getArticle() != null){
if(!articles.isEmpty()){
articles.clear();
}
articles = response.body().getArticle();
adapter = new Adapter(articles,getActivity());
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
initListner();
swipeRefreshLayout.setRefreshing(false);
}else{
swipeRefreshLayout.setRefreshing(false);
String errorCode;
switch (response.code()){
case 404:
errorCode = "404 not found,don't worry you are on Origin";
case 500:
errorCode = "505 server broken,don't worry you are on Origin";
default:
errorCode="unknown error,don't worry you are on Origin";
break;
}
showErrorMessage(R.drawable.no_result,
"no result",
"Please Try Again\n"+
errorCode);
}
}
@Override
public void onFailure(Call<News> call, Throwable t) {
swipeRefreshLayout.setRefreshing(false);
showErrorMessage(R.drawable.no_result,
"Oops!",
"Network failure,Please Try Later,don't worry we will back soon. \n Origin"+ t.toString());
}
});
}
private void initListner(){
adapter.setOnItemClickListener(new Adapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
ImageView imageView =view.findViewById(R.id.img);
Intent intent = new Intent(getActivity(), NewsDetailActivity.class);
Article article = articles.get(position);
intent.putExtra("url",article.getUrl());
intent.putExtra("title",article.getTitle());
intent.putExtra("img",article.getUrlToImage());
intent.putExtra("date",article.getPublishedAt());
intent.putExtra("source",article.getSource().getName());
intent.putExtra("author",article.getAuthor());
Pair<View, String> pair = Pair.create((View)imageView, ViewCompat.getTransitionName(imageView));
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(
getActivity(),
pair
);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
startActivity(intent,optionsCompat.toBundle());
}else{
startActivity(intent);
}
}
});
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_main,menu);
SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
final SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
MenuItem searchMenuItem = menu.findItem(R.id.action_search);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
searchView.setQueryHint("Search Latest News...");
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
if(query.length()>2){
onLoadingSwipeRefresh(query);
}else{
Toast.makeText(getActivity(), "Type More than two letters", Toast.LENGTH_SHORT).show();
}
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
searchMenuItem.getIcon().setVisible(false,false);
super.onCreateOptionsMenu(menu,inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case R.id.action_settings:
startActivity(new Intent(getActivity(), SettingsActivity.class));
return true;
case R.id.dark_mode:
if(interstitialAd.isLoaded())
{
interstitialAd.show();
}
else {
startActivity(new Intent(getActivity(), DarkMode.class));
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public void onRefresh() {
LoadJson("");
}
private void onLoadingSwipeRefresh(final String keyword){
swipeRefreshLayout.post(
new Runnable() {
@Override
public void run() {
LoadJson(keyword);
}
}
);
}
private void showErrorMessage(int imageView,String title,String message){
if(errorLayout.getVisibility()==View.GONE){
errorLayout.setVisibility(View.VISIBLE);
}
errorImage.setImageResource(imageView);
errorTitle.setText(title);
errorMessage.setText(message);
btnRetry.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
onLoadingSwipeRefresh("");
}
});
}
公共类DashboardFragment扩展片段实现SwipeRefreshLayout.OnRefreshListener{
专用仪表板视图模型仪表板视图模型;
公共静态最终字符串API_KEY=“e96f2eb28f2540bf98757628abd274b3”;
私人回收站;
private RecyclerView.LayoutManager LayoutManager;
private List articles=new ArrayList();
专用适配器;
私有字符串标记=DashboardFragment.class.getSimpleName();
私人SwipeRefreshLayout SwipeRefreshLayout;
私人关系布局;
私有图像查看错误图像;
私有文本查看错误标题,错误消息;
私人按钮btnRetry;
专用交换机;
私人间质;
@SuppressLint(“资源色”)
公共视图onCreateView(@NonNull layoutiner充气机,
视图组容器,捆绑包savedInstanceState){
仪表板视图模型=
ViewModelProviders.of(this.get)(仪表板viewmodel.class);
视图根=充气机。充气(R.layout.fragment_仪表板,容器,错误);
Toast.makeText(getActivity(),“原始新闻”,Toast.LENGTH_SHORT.show();
super.onCreate(savedInstanceState);
swipeRefreshLayout=root.findviewbyd(R.id.swipe\u refresh\u layout);
swipeRefreshLayout.setOnRefreshListener(此);
swipeRefreshLayout.setColorSchemeColors(R.color.colorAccent);
recyclerView=root.findViewById(R.id.recyclerView);
layoutManager=新的LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(layoutManager);
setItemAnimator(新的DefaultItemAnimator());
recyclerView.setNestedScrollingEnabled(false);
设置选项菜单(真);
onLoadingSwipeRefresh(“”);
errorLayout=root.findViewById(R.id.errorLayout);
errorImage=root.findViewById(R.id.errorImage);
errorTitle=root.findViewById(R.id.errorTitle);
errorMessage=root.findViewById(R.id.errorMessage);
btnRetry=root.findViewById(R.id.btnRetry);
初始化(getActivity(),“ca-app-pub-6862851420275633~8406415898”);
interstitalad=新的interstitalad(getActivity());
间质性setAdUnitId(“ca-app-pub-6862851420275633/3227253163”);
interstituralad.loadAd(新的addRequest.Builder().build());
返回根;
}
public void LoadJson(最终字符串关键字){
errorLayout.setVisibility(View.GONE);
swipeRefreshLayout.setRefreshing(true);
最终ApiInterface ApiInterface=ApiClient.getApiClient().create(ApiInterface.class);
字符串country=Utils.getCountry();
String language=Utils.getLanguage();
呼叫呼叫;
如果(关键字.length()>0){
call=apiInterface.getNewsSearch(关键字,语言,“publishedAt”,API_键);
}否则{
call=apinterface.getNews(国家,API_键);
}
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
if(response.issusccessful()&&response.body().getArticle()!=null){
如果(!articles.isEmpty()){
条款。清晰();
}
articles=response.body().getArticle();
adapter=新适配器(articles,getActivity());
recyclerView.setAdapter(适配器);
adapter.notifyDataSetChanged();
initListner();
swipeRefreshLayout.setRefreshing(false);
}否则{
swipeRefreshLayout.setRefreshing(false);
字符串错误码;
开关(response.code()){
案例404:
errorCode=“404未找到,请不要担心您在原点”;
案例500:
errorCode=“505服务器坏了,不要担心您在原点”;
违约:
errorCode=“未知错误,不要担心您在原点”;
打破
}
错误消息(R.drawable.no_结果,
“没有结果”,
“请再试一次\n”+
错误代码);
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
swipeRefreshLayout.setRefreshing(false);
错误消息(R.drawable.no_结果,
“哎呀!”,
“网络故障,请稍后再试,别担心我们很快就会回来。\n Origin”+t.toString());
}
});
}
私有void initListner(){
setOnItemClickListener(新的adapter.OnItemClickListener(){
@凌驾
公共虚线单击(视图,int位置){
ImageView ImageView=view.findViewById(R.id.img);
Intent Intent=newintent(getActivity(),NewsDetailActivity.class);
Article=articles.get(位置);
intent.putExtra(“url”,article.getUrl());
intent.putExtra(“title”,article.getTitle());
intent.putExtra(“img”,article.getUrlToImage());
intent.putExtra(“date”,article.getPublishedAt());
intent.putExtra(“source”,article.getSource().getName());
intent.putExtra(“author”,article.getAuthor());
Pair Pair=Pair.create((视图)imageView,ViewCompat.getTransitionName(imageView));
ActivityOptions Compat Options Compat=ActivityOptions Compat.MakeScenetTransitionAnimation(
getActivity(),
一对
);
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.KITKAT){
startActivity(intent,options compat.toBundle());
}否则{
星触觉(意向);
}
}
});
}
@凌驾
创建选项菜单(菜单菜单,菜单充气机){
充气机。充气(右菜单。菜单主菜单);
搜索马纳