2016-06-07 2 views
-2

Я использую фрагменты, чтобы получить стиль Вкладки на моем приложении, как показано здесь:Использование фрагментов для макета TAB, как их использовать?

Tabs

Уже вычитается, что каждая вкладка представляет собой фрагмент и каждый из них имеет компоновку, но я не могу дисплей на каждом показать, что я хочу. До того, фрагменты я имел простую активность для отображения данных из базы данных на ListView, но теперь я не могу заставить его работать на одном из фрагментов, с помощью следующего кода, который я использовал:

dal = new DAL(TabListas.this); 
     dal.connect(DBAccessMode.READ); 

     Cursor cursor = dal.selectALLFromRegSintomas(); 

     // Find ListView to populate 
     ListView lvItems = (ListView) findViewById(R.id.listv); 
     // Setup cursor adapter using cursor from last step 
     RegistosCursorAdapter todoAdapter = new RegistosCursorAdapter(TabListas.this, cursor, 0); 
     // Attach cursor adapter to the ListView 
     lvItems.setAdapter(todoAdapter); 

Как я могу использовать фрагменты для отображения данных из db в списке в одном фрагменте? Что я должен изменить?


VerRegsSintomas.java (как mainactivity.java):

package com.example.bugdroid.menuexe.Activities; 

import android.app.Activity; 
import android.database.Cursor; 
import android.graphics.Color; 
import android.graphics.drawable.ColorDrawable; 
import android.os.Bundle; 
import android.support.design.widget.TabLayout; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.view.ViewPager; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.widget.ListView; 

import com.example.bugdroid.menuexe.CursorAdapter.RegistosCursorAdapter; 
import com.example.bugdroid.menuexe.R; 
import com.example.bugdroid.menuexe.TabFragments.PageAdapter; 
import com.example.bugdroid.menuexe.database.DAL; 
import com.example.bugdroid.menuexe.database.DBAccessMode; 

public class VerRegsSintomas extends AppCompatActivity { 

    private ViewPager mViewPager; 
    private DAL dal; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_ver_regs_sintomas); 

     android.support.v7.app.ActionBar actionBar = getSupportActionBar(); 
     actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#1a212c"))); 

     TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout); 
     tabLayout.addTab(tabLayout.newTab().setText("Sintomas")); 
     tabLayout.addTab(tabLayout.newTab().setText("Listas")); 
     tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 

     final ViewPager viewPager = (ViewPager) findViewById(R.id.pager); 
     final PageAdapter adapter = new PageAdapter 
       (getSupportFragmentManager(), tabLayout.getTabCount()); 
     viewPager.setAdapter(adapter); 
     viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); 
     tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 

      @Override 
      public void onTabSelected(TabLayout.Tab tab) { 

      } 

      @Override 
      public void onTabUnselected(TabLayout.Tab tab) { 

      } 

      @Override 
      public void onTabReselected(TabLayout.Tab tab) { 

      } 
     }); 
    } 
} 

PageAdapter.java:

package com.example.bugdroid.menuexe.TabFragments; 

/** 
* Created by BugDroid on 07/06/2016. 
*/ 

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentStatePagerAdapter; 


public class PageAdapter extends FragmentStatePagerAdapter { 
    int mNumOfTabs; 

    public PageAdapter(FragmentManager fm, int NumOfTabs) { 
     super(fm); 
     this.mNumOfTabs = NumOfTabs; 
    } 

    @Override 
    public Fragment getItem(int position) { 

     switch (position) { 
      case 0: 
       TabSintomas tab1 = new TabSintomas(); 
       return tab1; 
      case 1: 
       TabListas tab2 = new TabListas(); 
       return tab2; 
      default: 
       return null; 
     } 
    } 

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

TabSintomas.java:

package com.example.bugdroid.menuexe.TabFragments; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import com.example.bugdroid.menuexe.R; 

public class TabSintomas extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.fragment_tab_sintomas, container, false); 
    } 
} 

fragment_Tab_sintomas.xml

<?xml version="1.0" encoding="utf-8"?> 
<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:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".Activities.VerRegistos"> 

    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/listv" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentStart="true" /> 
</RelativeLayout> 

ответ

0

Попробуйте Example, здесь вы можете найти TabLayout с помощью ViewPager и настраиваемой панели и вместе с этим все, что вы можете найти панель навигации там.

Смежные вопросы