2017-08-24 4 views
-2

これは引き出しレイアウトであり、私は何度もこの問題を解決するために検索しましたが、同じポイントで停止しています...ので、誰も私を助けてください、私が代わりにアンドロイドStudioで引き出しレイアウト設計された前の空白レイアウトを使って、引き出しのレイアウトを作成することができますjava.lang.IllegalArgumentException:フラグメント0x7f0e0084(com.example.dell.foodcourt:id/content)のビューが見つかりませんHomeFragment

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawerlayout"> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="hello"/> 
</LinearLayout> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/navigationmenu" 
     android:layout_height="match_parent" 
     android:layout_width="wrap_content" 
     app:menu="@menu/menudetails" 
     android:layout_gravity="start"> 
    </android.support.design.widget.NavigationView> 


</android.support.v4.widget.DrawerLayout> 

//これは、ホームフラグメントXMLのレイアウトですレイアウト

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/homeFragment" 
    tools:context="com.example.dell.foodcourt.HomeFragment"> 

    <!-- TODO: Update blank fragment layout --> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:textStyle="bold" 
     android:text="@string/hello_blank_fragment" /> 
</RelativeLayout> 

//ドロワレイアウトJavaクラス

package com.example.dell.foodcourt; 

import android.os.Bundle; 
import android.support.annotation.NonNull; 
import android.support.design.widget.NavigationView; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.view.GravityCompat; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBarDrawerToggle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.MenuItem; 

import static android.app.PendingIntent.getActivity; 

/** 
* Created by DELL on 19-08-2017. 
*/ 

public class Userhome extends AppCompatActivity { 
    private DrawerLayout drawerLayout; 
    private ActionBarDrawerToggle toggle; 
    private NavigationView navigationview; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.user_homepage); 
    drawerLayout = (DrawerLayout) findViewById(R.id.drawerlayout); 
    toggle=new ActionBarDrawerToggle(this,drawerLayout,R.string.open,R.string.close); 
    navigationview= (NavigationView) findViewById(R.id.navigationmenu); 
    drawerLayout.addDrawerListener(toggle); 
    toggle.syncState(); 
    setupDrawerContent(navigationview); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

} 

private void setupDrawerContent(NavigationView navigationView){ 
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener(){ 
     @Override 
     public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
      selectDraweritem(item); 
      return true; 
     } 
    }); 
} 

//私は主に私の知識まで、ここで問題に直面していますので、誰でも

public void selectDraweritem(MenuItem menuItem) { 
    Fragment fragment=null; 
switch (menuItem.getItemId()){ 
    case R.id.homeFragment: 
     fragment=new HomeFragment(); 
     break; 
    case R.id.navigation_Profile: 
     fragment=new Profile_Fragment(); 
     break; 
    default: 
     fragment=new HomeFragment(); 
     break; 
} 
if (fragment!=null){ 
    FragmentManager fragmentManager=getSupportFragmentManager(); 
    fragmentManager.beginTransaction().replace(R.id.content,fragment).commit(); 
} 
DrawerLayout drawerLayout= (DrawerLayout) findViewById(R.id.drawerlayout); 
    drawerLayout.closeDrawer(GravityCompat.START); 
    } 


public boolean onOptionsItemSelected(MenuItem item){ 
    if(toggle.onOptionsItemSelected(item)){ 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

} 

//ホームフラグメントのJavaクラスこの問題を解決するために私を助けてくださいすることができ、ここで

package com.example.dell.foodcourt; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import java.util.zip.Inflater; 


/** 
* A simple {@link Fragment} subclass. 
*/ 
public class HomeFragment extends Fragment { 


    public HomeFragment() { 
     // Required empty public constructor 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     inflater.inflate(R.layout.fragment_home,container,false); 
     if(savedInstanceState==null){ 
      getFragmentManager().beginTransaction().replace(R.id.content,new HomeFragment()).commit(); 
     } 
     return super.onCreateView(inflater,container,savedInstanceState); 
    } 

} 
です

答えて

0

HomeFragmentでは、onCreateViewメソッドのライフサイクルでinflateするビューを返す必要があります。

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     View rootView = inflater.inflate(R.layout.fragment_home,container,false); 
     // This part should be in the activity who handle the fragment 
     /*if(savedInstanceState==null){ 
      getFragmentManager().beginTransaction().replace(R.id.content,new HomeFragment()).commit(); 
     }*/ 
     return rootView; 
    } 
目的はまた

あなたの活動のレイアウトにフラグメントコンテナとしてでframeLayoutを追加することができますフラグメントに表示する:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawerlayout"> 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="hello"/> 
</LinearLayout> 

    <FrameLayout 
     android:id="@+id/content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/navigationmenu" 
     android:layout_height="match_parent" 
     android:layout_width="wrap_content" 
     app:menu="@menu/menudetails" 
     android:layout_gravity="start"> 
    </android.support.design.widget.NavigationView> 
</android.support.v4.widget.DrawerLayout> 

が、それはのご希望を

+0

は本当にcochiありがとう、あなただけの10minsに私の3日間の問題を解決できます...天才の帽子... – satish

+0

あなたは大歓迎です:チェックマークをクリックして答えを受け入れることを検討してください。これはあなたが解決策を見つけたことをコミュニティに示します。これを行う義務はありません。 – Cochi

+0

Cochiもう1つの質問メニュー項目の項目をクリックするとフラグメントに移動しますが、そのような家やプロフィールに関連するフラグメント情報は表示されません – satish

関連する問題