如何解决片段错误

问题描述:

下面是我的代码。如何解决片段错误

MainActivity.java以下代码:

public class Login extends AppCompatActivity { 
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 
     getSupportFragmentManager().beginTransaction().replace(R.id.loginFrame, new LoginFragment()).commit(); 

    } 
} 

片段活动的.java代码被称为在MainActivity.java

public class LoginFragment extends Fragment { 
     EditText emailEt,passwordEt; 
     String email,password; 
     Button login,signup; 
     @Nullable 
     @Override 
     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
      View rootview = super.onCreateView(inflater, container, savedInstanceState); 

      emailEt=(EditText)rootview.findViewById(R.id.emailEt); 
      passwordEt=(EditText)rootview.findViewById(R.id.passEt); 
      login=(Button)rootview.findViewById(R.id.loginBtn); 
      signup=(Button)rootview.findViewById(R.id.signupBtn); 

      login.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        email=emailEt.getText().toString(); 
        password=passwordEt.getText().toString(); 

        if(email.length()==0){ 
         emailEt.requestFocus(); 
         emailEt.setError("FIELD CANNOT BE EMPTY"); 
        }else if(password.length()==0){ 
         passwordEt.requestFocus(); 
         passwordEt.setError("FIELD CANNOT BE EMPTY"); 
        }else{ 
         Toast.makeText(getActivity(),"Validation Done",Toast.LENGTH_SHORT).show(); 
         Intent in=new Intent(getActivity(),Options_class.class); 
         startActivity(in); 
        } 
       } 
      }); 

      signup.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Intent intent=new Intent(getActivity(),Signup.class); 
        startActivity(intent); 
       } 
      }); 
      return rootview; 
     } 
    } 

错误logcat的代码哪个节目oncreate()主类中的错误

t dalvik.system.VMRuntime.newNonMovableArray(Native Method) at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:620) at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:455) at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1152) at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:724) at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:575) at android.content.res.Resources.loadDrawable(Resources.java:854) at android.content.res.TypedArray.getDrawable(TypedArray.java:928) at android.widget.ImageView.(ImageView.java:167) at android.widget.ImageView.(ImageView.java:155) at android.support.v7.widget.AppCompatImageView.(AppCompatImageView.java:60) at android.support.v7.widget.AppCompatImageView.(AppCompatImageView.java:56) at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106) at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1021) at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1080) at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:47) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) at android.view.LayoutInflater.rInflate(LayoutInflater.java:858) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater.inflate(LayoutInflater.java:518) at android.view.LayoutInflater.inflate(LayoutInflater.java:426) at android.view.LayoutInflater.inflate(LayoutInflater.java:377) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:288) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at com.example.nirmit.demo_frg.Login.onCreate(Login.java:13) at android.app.Activity.performCreate(Activity.java:6672) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1140) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2612) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2724) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1473) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6123) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)

任何机构都可以帮助我解决mainActivity和片段代码中的logcat问题。

+0

http://*.com/questions/32244851/androidjava-lang-outofmemoryerror -failed-to-allocate-a-23970828-byte-allocatio – siva35

修改此行

View rootview = super.onCreateView(inflater, container, savedInstanceState); 

这个

View rootview = inflater.inflate(R.layout.fragmentlayout, container, false); 
+0

再次出现同样的问题 –

+0

致命例外:main 进程:com.example.nirmit.demo_frg,PID:18536 java.lang.OutOfMemoryError:未能分配178787560字节分配,其中16768488个空闲字节和154MB,直到OOM –

public class Login extends AppCompatActivity { 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_login); 

      Bundle bundle = new Bundle(); 
      fragment = new LoginFragment(); 
      fragment.setArguments(bundle); 

      if (fragment != null) { 
       FragmentManager fragmentManager = getSupportFragmentManager(); 
       FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
       fragmentTransaction.replace(R.id.loginFrame, fragment); 
       fragmentTransaction.commit(); 
       //initToolbar(); 
      } 


     } 
    } 

而且

public class LoginFragment extends Fragment { 
    View rootview; 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     rootview = inflater.inflate(your_layout, null); 


     return rootview; 
    } 
}