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