2016-03-15 56 views
0

我有2个活动“MainActivity”和“MainActivity2”。一个Admob-Banner显示在底部的两个活动中。从单独的活动调用视图

我的问题:我想通过按MainActivity中的按钮禁用两个横幅。但是,由于我对android和开发人员都很陌生,所以缺乏经验。我搜索互联网,但找不到我的问题的有效答案。

我的问题:有没有办法将我的方法中单独的活动中的两个Ad-id链接起来,以及最好的方法是什么?

这是迄今为止我从MainActivity调用方法:

private void hide() { 

    //This is the Ad from MainActivity 
    final AdView adLayout = (AdView) findViewById(R.id.adView); 

    final Button disableAds = (Button) findViewById(R.id.disableAds); 

    runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      adLayout.setEnabled(false); 
      adLayout.setVisibility(View.GONE); 

      disableAds.setEnabled(false); 
      disableAds.setVisibility(View.GONE); 
     } 
    }); 
} 
+0

实际上你想要做什么? –

+0

我想通过在我的MainActivity中只使用一种方法来禁用这两种活动中的AdView – Niclas

+0

您是否从“MainActivity”调用“MainActivity2”? –

回答

0

每当您按下禁用按钮时,都会执行一项操作,将共享首选项中的状态保存起来。在每一个activity的onStart()方法中检查值的状态。根据该值在您的活动中显示/隐藏广告横幅。

String MyPREFERENCES = "myPrefs" ; 
SharedPreferences sharedpreferences; 
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 

当您单击按钮

Editor editor = sharedpreferences.edit(); 
        editor.putString("show_ads", "no"); 
        editor.commit(); 

然后在onStart()方法得到“show_ads”的基础上,值显示的值/隐藏广告设置的值。

sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 
     String name=sharedpreferences.getString("show_ads", "yes"); 
    if(name.equals("yes")){ 
     adLayout.setEnabled(true); 
     adLayout.setVisibility(View.VISIBLE); 

     disableAds.setEnabled(true); 
     disableAds.setVisibility(View.VISIBLE); 
     }else{ 
     adLayout.setEnabled(false); 
     adLayout.setVisibility(View.GONE); 

     disableAds.setEnabled(false); 
     disableAds.setVisibility(View.GONE); 
    } 
0

如果您正在通话中 “MainActivity2”,从 “MainActivity”:

//Code in "MainActivity" while starting "MainActivity2": 
Intent intent = new Intent(MainActivity.this, MainActivity2.class); 
intent.putExtra("isAdDisabled", true);// pass true if ad is disabled otherwise false 
startActivity(intent); 

//Code in onCreate of "MainActivity2": 
Intent intent = getIntent(); 
boolean isAdDisabled = intent.getBooleanExtra("isAdDisabled", false); 

if(isAdDisabled){ 
    // code to hide adview 
} 
0

使用共享的喜好来存储一个布尔值( isAdsDisabled)在您点击一个按钮时的主要活动中。

Editor editor = context.getSharedPreferences("ADS_PREF", Context.MODE_PRIVATE).edit(); 
editor.putBoolean(ADS_DIABLED, isAdsDisabled); 

当您想在第二个活动中显示广告以决定是否显示广告时,您可以再次查询。

您可以通过使用

SharedPreferences preferences = context.getSharedPreferences("ADS_PREF", Context.MODE_PRIVATE); 
boolean isAdsDisabled = preferences.getBoolean(ADS_DIABLED, false); 

可以检查isAdsDisabled的值来决定它做到这一点。