当我继承OnClickListener()时,我得到一个空指针异常

时间:2011-03-09 17:39:05

标签: java android

我正在尝试将我的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);

任何想法???非常感谢你提前!!!

2 个答案:

答案 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);