完成电流后开始活动

时间:2016-07-01 09:11:45

标签: java android admob android-recyclerview

我需要点击一下按钮完成三项任务。它看起来像点按钮点击SaveQuote 1)隐藏广告 2)制作布局截图并保存 3)显示Adview

现在我已经实现了在java中执行以上三个任务的方法,如下所示

else if(menuItem.getItemId() == R.id.save_image) {
                        adView.setVisibility(View.GONE);
                        saveQuote();
                        adView.setVisibility(View.VISIBLE);

但我面临的问题是广告始终保持可见。如果我使用ViewGone方法和saveQuote方法比它的工作正常,但如果我添加VISIBLE方法而不是隐藏我的adview。

注意:我没有收到任何错误。我只需要知道如何通过单击按钮

来实现上述三项任务

我的saveQuote方法如下所示

private void saveQuote(){
    String id=getQuote(mItemIndx).get(KEY_ID);
    View v1=null;

    List<Fragment> activeFragments=getSupportFragmentManager().getFragments();
    for(Fragment fragment:activeFragments){

        QuoteCard cardFrag=(QuoteCard)fragment;
        if(cardFrag!=null&&cardFrag.mId.equals(id)){
            v1=cardFrag.getCardView();

        }
    }
    TextView textView = (TextView)v1.findViewById(R.id.textAuthorSign);
    textView.setVisibility(TextView.VISIBLE);
    v1.setDrawingCacheEnabled(true);
    Bitmap bitmap = Bitmap.createBitmap(v1.getDrawingCache());
    v1.setDrawingCacheEnabled(false);
    ImageLoader.getInstance().saveQuoteImage(bitmap);
    Snackbar.make(v1,"Quote Saved",Snackbar.LENGTH_SHORT).show();
    adView.setVisibility(View.VISIBLE);
}

如果在saveQuote结束时设置了VISIBLE方法

,我会收到类似下面的错误
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.ads.NativeExpressAdView.setVisibility(int)' on a null object reference

由于

3 个答案:

答案 0 :(得分:1)

你可以这样做。

adView.setVisibility(View.GONE);
saveQuote();
设置完所有逻辑后,

现在在你的saveQuote()方法中..添加最后一行..

adView.setVisibility(View.VISIBLE); 请注意,您的adView应该全局定义,并且您已初始化了adVIew。

答案 1 :(得分:0)

您应该查看&#34; Handle,Looper,Message&#34;

adView.setVisibility(View.GONE); saveQuote(); adView.post(runable) Runnable runable=new Runnable(){ @Override public void run(){ adView.setVisibility(View.VISIBLE); } }

答案 2 :(得分:0)

宣布为全球

 final Handler handler = new Handler();

像这样更改你的代码

      else if(menuItem.getItemId() == R.id.save_image) {
                                    adView.setVisibility(View.GONE);
                                    saveQuote();
                                      handler.postDelayed(new Runnable()
                                     { @Override public void run() { 
 adView.setVisibility(View.VISIBLE); } }, 5000); 
                    }

如果不需要那么多延迟是5秒,减少延迟。