本帖最后由 MarkZar 于 2012-01-21 18:17:38 编辑

解决方案 »

  1.   

    Activity就是继承Context,从类关系上你可以理解成Activity是Context的扩充,如果按照windows的窗口机制,你也可以把Context理解成是一个句柄。
      

  2.   

    十分感谢!不过还想问一个问题,官方帮助文档中,描述Activity的继承关系如下:java.lang.Object
       ↳ android.content.Context
         ↳ android.content.ContextWrapper
           ↳ android.view.ContextThemeWrapper
             ↳ android.app.Activity
    这意思是说,Activity继承自java.lang.Object.android.content.Context.android.content.ContextWrapper.android.view.ContextThemeWrapper.android.app.Activity吧?不好意思,Java学的很急,对这个不太理解,这里为什么都是三个三个的呢?我知道android.content.Context中,android,content,Context都是一个包,那只用一层包就行了,为什么要用三层包的结构呢?这样的话,每一层级的前两个包不就浪费了吗
      

  3.   

    包名没有任何限制,包是为了方便管理和应用,别人一看就懂。
    假设用一层包Context,那如果不是搞android看到的谁知道是干什么的,并且容易引起冲突。
      

  4.   

    Activity extends Context  而Chapter03_ResourceActivity extends Activity 所以可以直接用 上面的
    String str = getString(R.string.str1).toString(); 
    相当于 String str = this.getString(R.string.str1).toString();
    也相当于 String str = Chapter03_ResourceActivity.this.getString(R.string.str1).toString();
    所以可以直接用的了