2012-04-06 70 views
-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(); 
    } 
} 

每當我這樣做我的程序停止工作。 其實我想在構造函數中調用intent,因爲我想顯示一個toast消息,並且如果我在構造函數中使用toast消息,它會給出錯誤。

plz幫助 謝謝

回答

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

其實我是新來的,並不知道很多有關線程,但我只有1個線程它不是讓我錯誤:( – 2012-04-07 14:16:41

+0

後您堆棧跟蹤使用土司在這個類它使我們也許能夠幫助 – Renard 2012-04-07 14:57:25

+0

我正在使用augmentedreality,並且正在使用andarmodelviwer ..在它的model3D類中,我想顯示toast消息 – 2012-04-07 15:21:33