以下代码是按钮的onClick()
方法
它一直给我一个错误
如果我删除startActivity()
,那么它可以正常工作。
单击Button时如何使用POST方法,还可以移动到另一个Activity?
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));
}
错误: 04-27 19:41:26.066 1974-1974 / com.opshun_test.opshun_test E / AndroidRuntime:FATAL EXCEPTION:main 过程:com.opshun_test.opshun_test,PID:1974 android.content.ActivityNotFoundException:无法找到显式活动类{com.opshun_test.opshun_test / com.opshun_test.opshun_test.FoodPreference};你有没有在AndroidManifest.xml中声明这个活动? 在android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1761) 在android.app.Instrumentation.execStartActivity(Instrumentation.java:1485) 在android.app.Activity.startActivityForResult(Activity.java:3736) 在android.app.Activity.startActivityForResult(Activity.java:3697) 在android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:817) 在android.app.Activity.startActivity(Activity.java:4007) 在android.app.Activity.startActivity(Activity.java:3975) 在com.opshun_test.opshun_test.Register1Activity.onClick(Register1Activity.java:173) 在android.view.View.performClick(View.java:4756) 在android.view.View $ PerformClick.run(View.java:19749) 在android.os.Handler.handleCallback(Handler.java:739) 在android.os.Handler.dispatchMessage(Handler.java:95) 在android.os.Looper.loop(Looper.java:135) 在android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) 在java.lang.reflect.Method.invoke(Method.java:372) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:899) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 04-27 19:41:26.106 1974-2307 / com.opshun_test.opshun_test I / output:org.apache.http.client.methods.HttpPost@5b541ce
答案 0 :(得分:0)
如果您对点击侦听器使用匿名内部类,请使用className.this而不是此
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,Activity2.class));
}
});
如果您正在处理活动中的单击,请确保在清单文件中定义了活动。提供堆栈跟踪以获得完整的解决方案。
答案 1 :(得分:0)
你没有在你的清单中声明你的活动。将以下行添加到清单文件中。
<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
}
答案 2 :(得分:0)
在Activity
Manifest
FoodPreference
你打电话
new HttpAsyncTask().execute(herokuServer);
Intent
FoodPreference.class
到onPostExecute()