代码之家  ›  专栏  ›  技术社区  ›  Leif Andersen

对象中嵌入一个Java类作为参数

  •  4
  • Leif Andersen  · 技术社区  · 14 年前

    我正在构建一个android应用程序,它有一个列表视图,在列表视图中有一个click监听器,其中包含一个oniteclick方法。所以我有这样的东西:

    public class myList extends ListActivity {
        @Override
    public void onCreate(Bundle savedInstanceState) {
            getListView().setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
                /* Do something*/
            }
        }
    }
    

    通常情况下,这是可行的。然而,很多时候我发现自己太需要使用外部类作为上下文来执行应用程序。周四,我用过:

    parent.getContext();
    

    但我想知道,这是个坏主意吗?我不能打电话给:

    super
    

    因为它不是真正的子类,只是一个嵌入的子类。那么,有没有更好的方法,或者说是被认为是舒适的?另外,如果这是正确的方法,如果嵌入方法没有参数来获取外部类,我该怎么做?

    谢谢您。

    2 回复  |  直到 14 年前
        1
  •  3
  •   laz    14 年前

    如果我正确理解了你的问题,你想从匿名的内部类中调用外部类,对吗?为此,请使用以下语法:

    myList.this.getContext();
    

    从内部 onItemClick 匿名内部类的方法。这是为内部类定义的特殊语法,用于访问包含该类的外部类的实例。

        2
  •  2
  •   jqpubliq    14 年前

    在匿名内部类中,您可以使用enclosingClass获取外部类的句柄。有关信息,请参阅 here . 它的长短不一是您可以使用mylist.this.getContext()在您的oniteClick()ECT中。