如何在一个onClick方法中添加两个函数?

时间:2015-04-28 00:28:40

标签: android android-activity onclick

以下代码是按钮的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

3 个答案:

答案 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.classonPostExecute()