2015-04-28 43 views
0

下面的代碼是一個Button的onClick()方法。
它不斷給我一個錯誤。
如果我刪除startActivity(),那麼它工作正常。如何在一個onClick方法中添加兩個函數?

我怎樣才能使用POST方法,當我點擊按鈕,也移動到另一個活動?

public void onClick(View view) { 
    switch (view.getId()) { 
     case R.id.register: 
      if (!validate()) 
       Toast.makeText(getBaseContext(), "Enter user information!", Toast.LENGTH_LONG).show(); 
      // call AsynTask to perform network operation on separate thread 
      new HttpAsyncTask().execute(herokuServer); 
      startActivity(new Intent(this, FoodPreference.class)); 
      break; 
    } 
    startActivity(new Intent(Register1Activity.this, FoodPreference.class)); 
} 

THE ERROR: 04-27 19:41:26.066 1974-1974/com.opshun_test.opshun_test E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.opshun_test.opshun_test, PID: 1974 android.content.ActivityNotFoundException: Unable to find explicit activity class {com.opshun_test.opshun_test/com.opshun_test.opshun_test.FoodPreference}; have you declared this activity in your AndroidManifest.xml? at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1761) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1485) at android.app.Activity.startActivityForResult(Activity.java:3736) at android.app.Activity.startActivityForResult(Activity.java:3697) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:817) at android.app.Activity.startActivity(Activity.java:4007) at android.app.Activity.startActivity(Activity.java:3975) at com.opshun_test.opshun_test.Register1Activity.onClick(Register1Activity.java:173) at android.view.View.performClick(View.java:4756) at android.view.View$PerformClick.run(View.java:19749) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 04-27 19:41:26.106 1974-2307/com.opshun_test.opshun_test I/output﹕ [email protected]

+0

通過ERROR更好IntentFoodPreference.class,我的意思是,當我按一下按鈕,它將停止應用程序。 – chrsfang

+1

你會得到什麼樣的錯誤?你可以發佈stacktrace嗎? – AndroidEx

+0

所以「你是否在AndroidManifest.xml中聲明瞭這個活動?」 :) – AndroidEx

回答

0

如果您正在使用匿名內部類的點擊監聽器,使用className.this而不是這個

button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       startActivity(new Intent(MainActivity.this,Activity2.class)); 
      } 
     }); 

,如果你正在處理活動中的點擊,確保活動在清單文件中定義。提供堆棧跟蹤以獲得完整的解決方案。

0

您沒有在您的manifest中聲明您的活動。將以下行添加到清單文件中。

<activity 
     android:name=".FoodPreference" 
     android:label="@string/title_activity_food_preference" > 
    </activity> 

此外,更安全的方式來啓動意圖始終檢查意圖是否可以解析,如下面的代碼。

Intent intent = new Intent(this, FoodPreference.class); 
    if (intent.resolveActivity(getPackageManager()) != null) { 
     startActivity(intent); 
    } else { 
     // TODO: activity not found 
    } 
0

註冊您的Activity FoodPreference在Manifest

您在調用

new HttpAsyncTask().execute(herokuServer); 

所以在onPostExecute()

相關問題