簡體   English   中英

結束電流后開始活動

[英]Start activity after finish current

我需要一鍵式完成三個任務。 其外觀類似於在按鈕上單擊,名為SaveQuote 1)隱藏Adview 2)制作版面的屏幕截圖並保存3)Show 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

謝謝

你可以做這樣的事情。

adView.setVisibility(View.GONE);
saveQuote();

設置完所有邏輯后,現在在saveQuote()方法中..添加最后一行..

adView.setVisibility(View.VISIBLE); 請注意,應全局定義adView並已初始化adVIew。

您應該查看“句柄,Looper,消息”

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

宣布為全球

 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秒。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM