当前结束后开始 activity
Start activity after finish current
我需要一键完成三个任务。它看起来像点击名为 SaveQuote 的按钮
1) 隐藏广告
2)制作布局截图并保存
3) 显示广告
现在我已经在我的 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
谢谢
你应该复习一下"Handle,Looper,Message"
adView.setVisibility(View.GONE);
saveQuote();
adView.post(runable)
Runnable runable=new Runnable(){
@Override
public void run(){
adView.setVisibility(View.VISIBLE);
}
}
你可以这样做。
adView.setVisibility(View.GONE);
saveQuote();
现在在你的 saveQuote() 方法中,在你的所有逻辑都设置好后.. 添加最后一行..
adView.setVisibility(View.VISIBLE);
请注意,您的 adView 应该是全局定义的,并且您已经初始化了 adVIew。
声明为全局
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秒,如果不需要那么多就减少延迟。
我需要一键完成三个任务。它看起来像点击名为 SaveQuote 的按钮 1) 隐藏广告 2)制作布局截图并保存 3) 显示广告
现在我已经在我的 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
谢谢
你应该复习一下"Handle,Looper,Message"
adView.setVisibility(View.GONE);
saveQuote();
adView.post(runable)
Runnable runable=new Runnable(){
@Override
public void run(){
adView.setVisibility(View.VISIBLE);
}
}
你可以这样做。
adView.setVisibility(View.GONE);
saveQuote();
现在在你的 saveQuote() 方法中,在你的所有逻辑都设置好后.. 添加最后一行..
adView.setVisibility(View.VISIBLE);
请注意,您的 adView 应该是全局定义的,并且您已经初始化了 adVIew。
声明为全局
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秒,如果不需要那么多就减少延迟。