-1

我知道有很多这样的问题,但我没有找到答案。

public class Model3D extends ARObject implements Serializable{

    public Model3D(Context context)
    {
        super("model", "", 80.0, new double[]{0,0});
        mContext = context;
    }

    public Model3D(Model model,String patternName)
    {
        super("model", patternName, 80.0, new double[]{0,0});
        Intent myIntent = new Intent(mContext, toast.class);
        mContext.startActivity(myIntent);
    }
}

public class toast extends Activity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        Toast.makeText(getApplicationContext(), "Let's do some search action", Toast.LENGTH_SHORT).show();
    }
}

每次我这样做时,我的程序都会停止工作。实际上我想在构造函数中调用意图,因为我想显示一个 toast 消息,如果我在构造函数中使用 toast 消息,它会给出错误。

请帮忙谢谢

4

1 回答 1

0

如果您只想举杯祝酒,为什么还要额外的活动?您只能在 ui 线程上显示 toasts。因此,如果您的构造函数未在 UI 线程中调用,则您必须具有对 Activity 或 Handler 的引用。

public Model3D(Model model, String patternName, final Activity activity) {
    super("model", patternName, 80.0, new double[] { 0, 0 });

    activity.runOnUiThread(new Runnable() {

        @Override
        public void run() {
            Toast.makeText(getApplicationContext(), "Let's do some search action", Toast.LENGTH_SHORT).show();          }
    });
}
于 2012-04-06T18:10:48.563 回答