2012-07-12 51 views
-1

我一直在试图设置此为过去的几个星期,但没有成功。我怎样才能把这两块代码放在同一个Java类中?AdMob和活动

private int entries = 6; 
private String phoneNum[]; 
private String buttonLabels[]; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    phoneNum = new String[entries]; 
    buttonLabels = new String[entries]; 

    // Populate the data arrays 
    populateArrays(); 

    // Set up buttons and attach click listeners 

    Button button1 = (Button)findViewById(R.id.button1); 
    button1.setText(buttonLabels[0]); 
    button1.setOnClickListener(this); 

    Button button2 = (Button)findViewById(R.id.button2); 
    button2.setText(buttonLabels[1]); 
    button2.setOnClickListener(this); 

    Button button3 = (Button)findViewById(R.id.button3); 
    button3.setText(buttonLabels[2]); 
    button3.setOnClickListener(this); 

    Button button4 = (Button)findViewById(R.id.button4); 
    button4.setText(buttonLabels[3]); 
    button4.setOnClickListener(this); 

    Button button5 = (Button)findViewById(R.id.button5); 
    button5.setText(buttonLabels[4]); 
    button5.setOnClickListener(this); 

    Button button6 = (Button)findViewById(R.id.button6); 
    button6.setText(buttonLabels[5]); 
    button6.setOnClickListener(this); 
} 

// Launch the phone dialer 

public void launchDialer(String number){ 
    String numberToDial = "tel:"+number; 
    startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(numberToDial))); 
} 


/** Method to populate the data arrays */ 

public void populateArrays(){ 

    /** In a practical application the arrays phoneNum and buttonLabels could be 
    * updated dynamically from the Web in this method. For this project we just 
    * hard-wire in some values to illustrate how to use such data, once obtained, 
    * to make phone calls.*/ 

    phoneNum[0] = "000-000-0001"; 
    phoneNum[1] = "000-000-0002"; 
    phoneNum[2] = "000-000-0003"; 
    phoneNum[3] = "000-000-0004"; 
    phoneNum[4] = "000-000-0005"; 
    phoneNum[5] = "000-000-0006"; 

    buttonLabels[0] = "Jane D. Arc"; 
    buttonLabels[1] = "John Doe"; 
    buttonLabels[2] = "Jane Doe"; 
    buttonLabels[3] = "Abe Linking"; 
    buttonLabels[4] = "Mona Liza"; 
    buttonLabels[5] = "Issac Nuton"; 
} 

/** Process button events */ 

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 

     case R.id.button1: 
      launchDialer(phoneNum[0]); 
      break; 

     case R.id.button2: 
      launchDialer(phoneNum[1]); 
      break; 

     case R.id.button3: 
      launchDialer(phoneNum[2]); 
      break; 

     case R.id.button4: 
      launchDialer(phoneNum[3]); 
      break; 

     case R.id.button5: 
      launchDialer(phoneNum[4]); 
      break; 

     case R.id.button6: 
      launchDialer(phoneNum[5]); 
      break; 

    } 
} 

当我尝试覆盖onStart()时,应用程序崩溃。

public void onStart(){ 
    super.onStart(); 
    AdView layout = (AdView)this.findViewById(R.id.adView); 
    // Initiate a generic request to load it with an ad 
    AdRequest adRequest = new AdRequest(); 
    adRequest.setTesting(true); 
    layout.loadAd(adRequest); 
} 

我知道,问题是这一行:

public void onStart(){ 
+0

我真的不明白...你有没有试图把@Override放在“public void onStart(){”这行? – sabadow 2012-07-12 13:21:20

+0

是的,我做到了。事情是,当我把代码的时候每一个,应用dosent崩溃,但是当我把两个块的应用程序崩溃。 – user1427211 2012-07-12 19:55:34

+0

你能提供崩溃的堆栈跟踪吗? – 2012-07-12 22:51:35

回答

1

如果你只是想获得AdMob的工作,你不应该使用在onStart。改用你的onCreate。

它在Google Admob documentation下的添加com.google.ads.AdView部分。

如果你已经在你的XML的AdView中,你可以得到它,并加载AdRequest中。如果您不这样做,那么文档的示例会动态添加一个。

您还需要确保你打电话.destroy();在视图上,所以你需要重写onDestroy函数。这完全在文档的例子中。

+0

没有anwsers,只是编辑的..天啊!!!! – user1427211 2012-07-21 20:10:37