2017-11-09 11 views
0

ListViewについてのBuckyのチュートリアル(私があなたが今彼氏であるかどうかはわかりません)に従っています。フラグメント内にあるので、自分のコードも編集しました。私はエラーを取り除くことができますが、リスト項目は表示されません。Android ListViewフラグメントのアイテムが表示されない

は、ここでフラグメントのコードです:

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_master,container,false); 

    String[] foods = {"Shanghai","Spaghetti"}; 
    ListAdapter lAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,foods); 

    ListView masterListView = (ListView) view.findViewById(R.id.masterListView); 
    masterListView.setAdapter(lAdapter); 

    masterListView.setOnItemClickListener(
      new AdapterView.OnItemClickListener(){ 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
        String doof = String.valueOf(parent.getItemAtPosition(position)); 
        Toast.makeText(getActivity(),doof,Toast.LENGTH_LONG).show(); 
       } 
      }); 

    return view; 
} 

そして、ここでは、XMLです:私はイムは、引き出しとタブレイアウトを使用していることを言及するのを忘れてしまった

<ListView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/masterListView" /> 

おかげ

。私はthatsの重要な場合は知らないが、ここに私のコードです:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_menu); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 

    ViewPager vp_pages= (ViewPager) findViewById(R.id.vp_pages); 
    PagerAdapter pagerAdapter=new FragmentAdapter(getSupportFragmentManager()); 
    vp_pages.setAdapter(pagerAdapter); 

    TabLayout tab_pages= (TabLayout) findViewById(R.id.tab_pages); 
    tab_pages.setupWithViewPager(vp_pages); 

} 

と:この代わりに

public class FragmentAdapter extends FragmentPagerAdapter { 
    public FragmentAdapter(FragmentManager supportFragmentManager) { 
     super(supportFragmentManager); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     switch (position){ 
      case 0: 
       return new tab1(); 
      case 1: 
       return new tab2(); 
     } 
     return null; 
    } 

    @Override 
    public int getCount() { 
     return 2; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     switch (position){ 
      // 
      //Your tab titles 
      // 
      case 0:return "Tab1"; 
      case 1:return "Tab2"; 
      default:return null; 
     } 
    } 
} 
+0

アダプタを見ることはできますか?カスタム行は私が前提としています –

+0

上記のコードは正常に動作します。私は断片をつけることにいくつか問題があると思う。 – Jonik

+0

フラグメントを追加する場所にアクティビティーコードを記入してください。 – Munir

答えて

0

ListAdapter lAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,foods); 

使用:

ListAdapter lAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1,foods); 

ためgetActivity( )アクティビティのコンテキストを提供しますあなたのフラグメントがあるのに対し、getContext()はあなたのリストビューアダプタがあるフラグメントのコンテキストを取得します。

+0

これはうまくいきます。それがうまくいけば、それは同じ問題で将来他の人を助けるので、答えとしてこの投稿をマークすることを忘れないでください。ハッピーコーディング:) –

+0

申し訳ありませんが、まだ動作していません。何も変わらない。まだ表示されていないリスト –

関連する問題