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

언제든지 내 프로그램이 작동을 멈 춥니 다. 실제로 나는 토스트 메시지를 보여주고 싶기 때문에 생성자에서 인 텐트를 호출하려고하며, 생성자에서 토스트 메시지를 사용하면 오류가 발생합니다.

PLZ 도움 는 당신에게 감사

답변

0

왜 그냥 토스트를 표시 할 경우 추가 작업? 토스트는 UI 스레드에서만 표시 할 수 있습니다. 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();   } 
    }); 
} 
+0

실제로 나는 그것을 새로운 오전 및 스레드에 대해 잘 몰라요하지만 난 단 1 스레드가 당신이 스택 트레이스 오류 :( –

+0

포스트 날이 제공이 클래스에서 토스트를 사용할 수있게되지는 그리고 우리는 도울 수 있습니다 너 – Renard

+0

나는 augmentedreality에서 작업 중이며 andarmodelviwer를 사용 중이다. model3D 클래스에서 나는 토스트 메시지를 보여주고 싶다. –

관련 문제