【发布时间】:2015-09-28 07:41:33
【问题描述】:
我刚刚开始进行android开发,我被困在这个:
static Handler h = new Handler()
{
@Override
public void handleMessage(Message msg) {
TextView buttonmain = (TextView)findViewById(R.id.buttonmainid);
if(buttonmain.getText()=="Text1")
buttonmain.setText("Text2");
else
buttonmain.setText("Text1");
}
};
这会导致在静态上下文中访问 findViewById() 方法时出错。
【问题讨论】:
-
为什么
Handler必须是静态的? -
为什么需要Handler?
-
防止内存泄漏。这是我在使用时发现的警告。@mr.icetea
-
文本视图定义在创建视图和静态视图中,在静态方法下调用
-
static东西在类加载时被加载,views在context上可用。当类为initialized时,Context被初始化。这意味着,您必须等待获取视图,直到活动上下文可用。Context将在onCreate()中可用,因此通常会在此处加载视图。我建议您快速查看 Android 指南(此类信息的最佳位置)
标签: java android static static-methods android-context