在下面的代码中,我可以写什么来代替Play.this,以便它可以自动使用它所使用的类的名称,而无需写入名称(在本例中为“播放”)AlertDialog.Builder builder = new AlertDialog.Builder(Play.this);
如何自动使用班级名称?
回答
设置上下文(此处)前还有其他事情需要考虑。
第一种情况 - 如果你是在扩展其基础样活性/服务上下文中的某一类,你是不在一个内部类,你可以用“这个”
二 - 如果你在一个扩展基类的上下文的类中,比如Activity/Services,并且你在一个内部类中,你可以使用(Play.this),因为在这种情况下,“this”是关于内部类的。
三 - 如果你是在另一个类不具有一个背景下,你可以通过它在构造函数或方法,如:
class Test {
public void createBuilder(Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
}
}
没有理由在Play
类的代码中使用Play.this
。只需使用this
:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
但是,如果你想要做的是从你的内部类,那么你需要this
不会指向Context
子类,这样你就可以即在父类的创建成员,即:
Context mContext;
初始化它在IE onCreate()
:
mContext= this;
,并使用mContext
从听众的代码
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
如果这是在'new View.OnClickListener'内,那么,是的,你需要'Play。这个' –
再次阅读'代码是Play类的一部分'。你谈论内心阶层。这是不同的 –
内部类是“另一类的一部分”,IMO :) –
我认为你要找的是this.getClass().getName()
。如果您只需要非限定名称,请改为使用this.getClass().getSimpleName()
。我对Android很少了解,但这就是通常在Java中这样做的方式。
- 1. 从班级名称
- 2. 班级体内班级的Python名称
- 3. Yii2从名称动态加载班级
- 4. JavaScript - 获得班级名称
- 5. 选择班级名称值
- 6. 暧昧的班级名称
- 7. NLog。更改班级名称
- 8. 获取班级名称(KendoUI)
- 9. 如何在班级内使用班级?
- 10. 如何访问自己班级的名称作为字符串的名称
- 11. 如何在自己的班级中获得蜘蛛名称?
- 12. 自动点击同一班级名称中的一个元素
- 13. 如何使用jquery keypress事件来隐藏匹配或启动班级名称
- 14. 如何使用PSR-4自动加载班级?
- 15. Kryo自动班级注册
- 16. Gtest:预期的班级名称之前'{'
- 17. 流利Nhibernate没有Persistor班级名称
- 18. CSS悬停不接受班级名称
- 19. 从div取得班级名称
- 20. jQuery:以前的班级名称儿童
- 21. 更改Mongoid班级名称中产
- 22. 参考父母的班级方法,不用父母的班级名称
- 23. 带班级名单的班级
- 24. 如何记录两个班级使用的总体班级
- 25. 如何检查所有班级或使用班级?
- 26. 无法使用VBA从班级名称中删除表格
- 27. 在班级名称中使用下划线
- 28. 使用其他班级的班级
- 29. 如何在另一个班级内使用CSS样式一个班级但不影响主班级班级
- 30. TestNG - 如何从BeforeClass获取当前班级名称
你能不能给多一点上下文到这似乎? “这个班”是什么意思? – tadman
我试过使用: 'AlertDialog.Builder builder = new AlertDialog.Builder(this.getClass()。this)'但它没有工作 –
这没有任何意义......你需要一个'Context'变量,而不是' Class'。和'getClass()。这个'不能编译 –