Java 我正在尝试使用意图导航到多个活动,我遇到了一个运行时异常,我是eclipse的初学者,所以请指导我
MainActivity.javaJava 我正在尝试使用意图导航到多个活动,我遇到了一个运行时异常,我是eclipse的初学者,所以请指导我,java,android,eclipse,android-intent,android-activity,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 = (Ed
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);
}
});
}
}
public class SecondActivity extends Activity {
Intent intent = getIntent();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
}
}
SecondActivity.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);
}
});
}
}
public class SecondActivity extends Activity {
Intent intent = getIntent();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
}
}
所有其他活动的编码与上述类似。
这是我的日志
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
只需要两个意图,代码就可以正常工作,但是当我将值与字符串进行比较时,应用程序崩溃了,我不知道错误在哪里 使用MainActivity代替getBaseContext()和getApplicationContext(),它可以在任何地方工作。使用MainActivity代替getBaseContext()和getApplicationContext(),它可以在任何地方工作。使用MainActivity代替getBaseContext()和getApplicationContext(),将在任何地方都有效。使用MainActivity代替getBaseContext()和getApplicationContext()。这作为上下文,将在任何地方都有效。您应该这样放置它
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
Intent i = getIntent();
}
}
如果额外数据是字符串,则可以按如下方式获取:
String nameString = i.getStringExtra("nameExtra");
你应该这样说
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
Intent i = getIntent();
}
}
如果额外数据是字符串,则可以按如下方式获取:
String nameString = i.getStringExtra("nameExtra");
你应该这样说
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
Intent i = getIntent();
}
}
如果额外数据是字符串,则可以按如下方式获取:
String nameString = i.getStringExtra("nameExtra");
你应该这样说
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
Intent i = getIntent();
}
}
如果额外数据是字符串,则可以按如下方式获取:
String nameString = i.getStringExtra("nameExtra");
在onCreate()之前不能使用getIntent(),在这一点上根本没有可用的意图 在您的代码中,我怀疑您正试图从Intent获取
StringExtras
,但由于Intent为null,它正在抛出NullPointerException
在第二个活动中
可以在onCreate()
方法中使用getIntent()
public class SecondActivity extends Activity {
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
intent = getIntent();
String userName = intent.getStringExtra("Second");
...
}
}
在onCreate()之前不能使用getIntent(),在这一点上根本没有可用的意图 在您的代码中,我怀疑您正试图从Intent获取
StringExtras
,但由于Intent为null,它正在抛出NullPointerException
在第二个活动中
可以在onCreate()
方法中使用getIntent()
public class SecondActivity extends Activity {
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
intent = getIntent();
String userName = intent.getStringExtra("Second");
...
}
}
在onCreate()之前不能使用getIntent(),在这一点上根本没有可用的意图 在您的代码中,我怀疑您正试图从Intent获取
StringExtras
,但由于Intent为null,它正在抛出NullPointerException
在第二个活动中
可以在onCreate()
方法中使用getIntent()
public class SecondActivity extends Activity {
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
intent = getIntent();
String userName = intent.getStringExtra("Second");
...
}
}
在onCreate()之前不能使用getIntent(),在这一点上根本没有可用的意图 在您的代码中,我怀疑您正试图从Intent获取
StringExtras
,但由于Intent为null,它正在抛出NullPointerException
在第二个活动中
可以在onCreate()
方法中使用getIntent()
public class SecondActivity extends Activity {
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
intent = getIntent();
String userName = intent.getStringExtra("Second");
...
}
}
使用少量代码检查,以确保您的意图正常运行。例如,您可以在
getIntent
代码周围使用if
语句。对于调用哪种合适的方法,您必须稍微考虑一下,因为这取决于您希望应用程序做什么。幸运的是,当您写下一些Android资源时,Eclipse提供了所有相关文档,例如Intent
使用少量代码检查,以确保您的意图正常运行。例如,您可以在getIntent
代码周围使用if
语句。对于调用哪种合适的方法,您必须稍微考虑一下,因为这取决于您希望应用程序做什么。幸运的是,当您写下一些Android资源时,Eclipse提供了所有相关文档,例如Intent
使用少量代码检查,以确保您的意图正常运行。例如,您可以在getIntent
代码周围使用if
语句。对于调用哪种合适的方法,您必须稍微考虑一下,因为这取决于您希望应用程序做什么。幸运的是,当您写下一些Android资源时,Eclipse提供了所有相关文档,例如Intent
使用少量代码检查,以确保您的意图正常运行。例如,您可以在getIntent
代码周围使用if
语句。对于调用哪种合适的方法,您必须稍微考虑一下,因为这取决于您希望应用程序做什么。幸运的是,当您写下一些Android资源时,Eclipse提供了所有相关文档,例如Intent
Put-Intent=getIntent();在onCreate()方法内部。第二个活动中的第15行是什么?Put Intent=getIntent();在onCreate()方法内部。第二个活动中的第15行是什么?Put Intent=getIntent();在onCreate()方法内部。第二个活动中的第15行是什么?Put Intent=getIntent();在onCreate()方法内部。SecondActivity中的第15行是什么?感谢您的输入,但是当我更改为MainActivity时,应用程序开始工作。这代替了getBaseContext()和getApplicationContext()。感谢您的输入,但是当我更改为MainActivity时,应用程序开始工作。这代替了getBaseContext()和getApplicationContext()感谢您的输入,但是当我更改为MainActivity时,应用程序开始工作。这代替了getBaseContext()和getApplicationContext(),感谢您的输入,但是当我更改为MainActivity时,应用程序开始工作。这代替了getBaseContext()和getApplicationContext(),感谢您的输入,但是,当我更改为MainActivity时,应用程序开始工作。这取代了getBaseContext()和getApplicationContext(),感谢您的输入,但是当我更改为MainActivity时,应用程序开始工作。这取代了