java - 我正在尝试使用 Intent 导航到多个 Activity ,但遇到运行时异常,我是 Eclipse 的初学者,所以请指导我

标签 java android eclipse android-intent android-activity

MainActivity.java

public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final EditText txtUserName = (EditText)findViewById(R.id.editText1);
    final EditText txtPassword = (EditText)findViewById(R.id.editText2);
    Button btnLogin = (Button)findViewById(R.id.button1);
    btnLogin.setOnClickListener(new OnClickListener(){
       @Override
       public void onClick(View v) {
         String username = txtUserName.getText().toString();
         String password = txtPassword.getText().toString();
         String foo = new String("131031001");
         String foo2 = new String("131031002");
         String foo3 = new String("131031003");
         String foo4 = new String("131031004");
         String foo5 = new String("131031005");
         try{
           if(username.length() > 0 && password.length() >0) {
             DBUserAdapter dbUser = new DBUserAdapter(MainActivity.this);
             dbUser.open();
             dbUser.AddUser();
             if(dbUser.Login(username, password))
             {
                Toast.makeText(MainActivity.this,"Successfully Logged In", Toast.LENGTH_LONG).show();
                if(username.equals(foo))
                {
                   Intent nextActivity2 = new Intent(getApplicationContext(),SecondActivity.class);
                   nextActivity2.putExtra("Second",username);
                   startActivity(nextActivity2);
                }
                else if(username.equals(foo2)) {
                   Intent nextActivity3 = new Intent(getBaseContext(),ThirdActivity.class);
                    nextActivity3.putExtra("Third",username);
                    startActivity(nextActivity3);
                }
                else if(username.equals(foo3))
                {
                   Intent nextActivity4 = new Intent(getBaseContext(),FourthActivity.class);
                   nextActivity4.putExtra("Fourth",username);
                   startActivity(nextActivity4);
                }
                else if(username.equals(foo4)) {
                   Intent nextActivity5 = new Intent(getBaseContext(),FifthActivity.class);
                   nextActivity5.putExtra("Fifth",username);
                   startActivity(nextActivity5);
                }
                else if(username.equals(foo5)) {
                   Intent nextActivity6 = new Intent(getBaseContext(),SixthActivity.class);
                   nextActivity6.putExtra("Sixth",username);
                   startActivity(nextActivity6);
                }
                else {
                   Toast.makeText(MainActivity.this,"Result does not exist! Try later!!", Toast.LENGTH_LONG).show();
                }
            }else {
                Toast.makeText(MainActivity.this,"Invalid Username/Password", Toast.LENGTH_LONG).show();
            }
            dbUser.close();
          }

        }catch(Exception e) {
          Toast.makeText(MainActivity.this,e.getMessage(), Toast.LENGTH_LONG).show();
        }
      }

    });

    Button btreg = (Button)findViewById(R.id.button2);
    btreg.setOnClickListener(new OnClickListener(){
       @Override
       public void onClick(View v) {
          Intent nextActivity = new Intent(getApplicationContext(),Register.class);
          startActivity(nextActivity);
       }
     });
   }
}

SecondActivity.java

public class SecondActivity extends Activity {  
   Intent intent = getIntent();
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.second_activity);
   }
}

所有其他 Activity 的编码与上述类似。 这是我的 logcat。

10-28 14:53:10.688: E/AndroidRuntime(1196): Process: com.skcetresults, PID: 1196
10-28 14:53:10.688: E/AndroidRuntime(1196): java.lang.RuntimeException: Unable to start activity        ComponentInfo{com.skcetresults/com.skcetresults.SecondActivity}: java.lang.NullPointerException
10-28 14:53:10.688: E/AndroidRuntime(1196):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at android.app.ActivityThread.access$700(ActivityThread.java:135)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at android.os.Handler.dispatchMessage(Handler.java:102)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at android.os.Looper.loop(Looper.java:137)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at android.app.ActivityThread.main(ActivityThread.java:4998)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at java.lang.reflect.Method.invokeNative(Native Method)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at java.lang.reflect.Method.invoke(Method.java:515)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at dalvik.system.NativeStart.main(Native Method)
10-28 14:53:10.688: E/AndroidRuntime(1196): Caused by: java.lang.NullPointerException
10-28 14:53:10.688: E/AndroidRuntime(1196):     at com.skcetresults.SecondActivity.onCreate(SecondActivity.java:15)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at android.app.Activity.performCreate(Activity.java:5243)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
10-28 14:53:10.688: E/AndroidRuntime(1196):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)
10-28 14:53:10.688: E/AndroidRuntime(1196):     ... 11 more

只有两个 Intent ,代码工作得很好,但是当我将值与字符串进行比较时,应用程序崩溃了,我不知道错误在哪里。

最佳答案

使用 MainActivity.this 作为上下文,而不是 getBaseContext() 和 getApplicationContext(),将在任何地方工作。

关于java - 我正在尝试使用 Intent 导航到多个 Activity ,但遇到运行时异常,我是 Eclipse 的初学者,所以请指导我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33399842/

相关文章:

java - 当前运行的类或 JAR 文件的位置

java.lang.OutOfMemoryError : PermGen space solution 错误

Android:如何设置 Activity 窗口的绝对大小?

java - Android - 在整个类中使用和更改数组

java - 我在哪里可以找到 Eclipse 中的导入文件

eclipse - 无法将 valgrind 集成到 Eclipse

java - 在 Java 中创建一个 .eml(电子邮件)文件

java - 在我的 portlet 中添加 postgres jdbc 后,我的 portlet 无法启动

android - 无法更改 Android 开发人员控制台中的默认语言 - 缺少不存在的应用内产品翻译

java - 如何编译maven包上的classpath资源?