如何自动使用班级名称?

时间:2017-03-07 20:15:13

标签: java android

在下面的代码中我可以编写什么而不是Play.this,以便它可以自动使用使用它的类的名称,而无需编写名称(在这种情况下" Play&#34 ;)AlertDialog.Builder builder = new AlertDialog.Builder(Play.this);

3 个答案:

答案 0 :(得分:1)

没有理由在$scope.gridOptions = { columnDefs: columnDefs, rowData: $scope.rowData, angularCompileHeaders: true, enableColResize: true, enableSorting: true, enableFilter: true }; 类的代码中使用Play.this。只需使用Play

this

但是如果你想从你的内部类中做到这一点,那么你需要AlertDialog.Builder builder = new AlertDialog.Builder(this); 不会指向this子类,所以你可以在你的父类中创建成员,即:

Context

将其初始化为Context mContext;

onCreate()

并使用听众代码中的mContext= this;

mContext

答案 1 :(得分:1)

在设置上下文(this)之前还有其他事情需要考虑。

第一种情况 - 如果您所在的类在其基础中扩展了一个上下文,如Activity / Services,并且您在内部类中 NOT ,则可以只使用“this”

第二 - 如果你在一个扩展其基础上的上下文的类,如Activity / Services,并且你在内部类中,你可以使用(Play.this),因为在这种情况下,“this”是关于内在阶级。

第三 - 如果你在另一个没有上下文的类中,你可以在构造函数或方法中传递它:

class Test {
   public void createBuilder(Context context) {
      AlertDialog.Builder builder = new AlertDialog.Builder(context);
   }
}

答案 2 :(得分:0)

我认为你要找的是this.getClass().getName()。如果您只想要不合格的名称,请改用this.getClass().getSimpleName()。我对Android的了解很少,但这就是你通常用Java做的。