2014-01-21 102 views
0

我有我的登录屏幕,并且在ViewPager的其中一个页面上有一个登录按钮。我试图让这个按钮直接进入主要活动,因为我没有把所有的服务器端整理出来。当我这样做,虽然,我得到这个错误:无法从FragmentActivity调用意图

01-21 14:51:33.499: E/AndroidRuntime(2256): FATAL EXCEPTION: main 
01-21 14:51:33.499: E/AndroidRuntime(2256): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fbla.sap/com.fbla.sap.LoginActivity}: java.lang.NullPointerException 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2304) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at android.app.ActivityThread.access$700(ActivityThread.java:165) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1326) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at android.os.Looper.loop(Looper.java:137) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at android.app.ActivityThread.main(ActivityThread.java:5450) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at java.lang.reflect.Method.invoke(Method.java:525) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at dalvik.system.NativeStart.main(Native Method) 
01-21 14:51:33.499: E/AndroidRuntime(2256): Caused by: java.lang.NullPointerException 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at com.fbla.sap.LoginActivity.onCreate(LoginActivity.java:23) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at android.app.Activity.performCreate(Activity.java:5369) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267) 
01-21 14:51:33.499: E/AndroidRuntime(2256):  ... 11 more 

这里是我的源代码LoginActivity.java:

package com.fbla.sap; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.support.v4.view.ViewPager; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentManager; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 

public class LoginActivity extends FragmentActivity { 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 

     ViewPager viewPager = (ViewPager) findViewById(R.id.pager); 
     viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager())); 

     Button loginBtn = (Button) findViewById(R.id.loginBtn); 
     loginBtn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Intent intent = new Intent(LoginActivity.this, InterfaceActivity.class); 
       startActivity(intent); 
      } 

     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.login, menu); 
     return true; 
    } 

} 
+1

您确定res/layout/activity_login.xml包含

回答

0
Button loginBtn = (Button) findViewById(R.id.loginBtn); 

loginBtn可能是零。

+0

可能就是这样。我在我的一个片段中有按钮,而不是在此片段创建的视图中。有关如何解决此问题的任何选项? –

+0

因为它在你的片段中,所以你应该把这个clicklistener部分放入你的片段中,当你的片段处于前景并被点击时,它会打开MainActivity。 –

+0

我想通了。谢谢! –