我正在尝试将我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;
}
}
Run Code Online (Sandbox Code Playgroud)
当我从我的主要课程中调用它时,我这样做:
final Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(Utilities.CreateOnClickListener(MainMenu.this, SettingsMenu.class));
Run Code Online (Sandbox Code Playgroud)
当我调试时,此行发生异常:
act.startActivity(window);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗???非常感谢你提前!!!
你不能使用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;
}
}
Run Code Online (Sandbox Code Playgroud)