-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();
    }
}

これを行うたびに、プログラムが機能しなくなります。実際には、トーストメッセージを表示したいのでコンストラクターでインテントを呼び出したいのですが、コンストラクターでトーストメッセージを使用するとエラーが発生します。

助けてくださいありがとう

4

1 に答える 1

0

トーストを表示したいだけなのに、なぜ余分なアクティビティが必要なのでしょうか? トーストは UI スレッドでのみ表示できます。したがって、コンストラクターが UI スレッドで呼び出されない場合は、アクティビティまたはハンドラーへの参照が必要です。

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 に答える