我正在尝试将我的OnClickListener()
中的一个子类化,并且我得到一个'空指针'异常,但我不确定为什么......我会对此感到困惑..任何帮助将不胜感激..
以下是位于com.Tools
中的Utilities Class中的代码public class Utilities
{
public static View.OnClickListener CreateOnClickListener(final Context context,final Class<?> cls)
{
final Activity act = new Activity();
View.OnClickListener listener = new View.OnClickListener()
{
public void onClick(View v)
{
Intent window = new Intent(context, cls);
act.startActivity(window);
act.finish();
}
};
return listener;
}
}
当我从我的主要班级打电话时,我这样做:
final Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(Utilities.CreateOnClickListener(MainMenu.this, SettingsMenu.class));
当我调试时,此行发生异常:
act.startActivity(window);
任何想法???非常感谢你提前!!!
答案 0 :(得分:5)
您无法使用您创建的Activity
。它需要附加到系统才有用。此外,你不需要它。请尝试此实现:
public class Utilities
{
public static View.OnClickListener CreateOnClickListener(final Context context,final Class<?> cls)
{
View.OnClickListener listener = new View.OnClickListener()
{
public void onClick(View v)
{
Intent window = new Intent(context, cls);
context.startActivity(window);
}
};
return listener;
}
}
答案 1 :(得分:1)
我想你打电话的时候
act.startActivity(window);
应从当前上下文调用它。 即
context.startActivity(window);