Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Android Code: Tabbed Activity mit verschiedenen Fragments

11.01.2021 (👁7939)

Android Code: Tabbed Activity mit verschiedenen Fragments

 

 

 

Code res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
xmlns:tools="http://schemas.android.com/tools"
   
android:orientation="vertical">



    <
com.google.android.material.tabs.TabLayout
       
android:id="@+id/tabs"
       
android:layout_width="match_parent"
       
android:layout_height="wrap_content"
        
tools:layout_editor_absoluteX="182dp"
       
tools:layout_editor_absoluteY="373dp">
    </
com.google.android.material.tabs.TabLayout>

    <
androidx.viewpager2.widget.ViewPager2
       
android:id="@+id/view_pager"
       
android:layout_width="match_parent"
       
android:layout_height="match_parent"
       
tools:layout_editor_absoluteX="145dp"
       
tools:layout_editor_absoluteY="500dp" />

</
LinearLayout>

 

 

 

Java Code: java/project/MainActivity.java

package com.example.demo_viewpager2;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager2.widget.ViewPager2;

import android.os.Bundle;

import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;

public class MainActivity extends AppCompatActivity {

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
//< create >
       
super.onCreate(savedInstanceState);
        setContentView(
R.layout.activity_main);
       
//</ create >

        //< get elements >
       
TabLayout tabLayout = findViewById(R.id.tabs);
       
ViewPager2 viewPager2 = findViewById(R.id.view_pager);
       
//</ get elements >


       
ViewPagerAdapter adapter = new ViewPagerAdapter(this);
       
viewPager2.setAdapter(adapter);

       
new TabLayoutMediator(tabLayout, viewPager2,
               
new TabLayoutMediator.TabConfigurationStrategy() {
                   
@Override
                   
public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
                        tab.setText(
"Tab " + (position + 1));
                    }
                }).attach();
    }
}

 

 

Adapter:

The adapter loads the fragments into the pageviewer2

package com.example.demo_viewpager2;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.viewpager2.adapter.FragmentStateAdapter;

public class ViewPagerAdapter extends FragmentStateAdapter {

   
public ViewPagerAdapter(@NonNull FragmentActivity fragmentActivity)
    {
       
super(fragmentActivity);
    }

   
@NonNull
    @Override
   
public Fragment createFragment(int position) {

       
switch (position) {
           
case 0:
               
return  new page1();
           
case 1:
               
return  new page2();
           
default:
               
return  new page3();
        }
    }
   
@Override
   
public int getItemCount() {return 3; }
}

 

 

 

Framgent page 1

Standard new Fragments

 

Xml Code framgent_page1

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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"
   
tools:context=".page1">

   
<!-- TODO: Update blank fragment layout -->
   
<TextView
       
android:layout_width="match_parent"
       
android:layout_height="match_parent"
       
android:text="page1"
       
android:background="@color/white"
       
android:textSize="33sp"
       
/>

</
FrameLayout>

 

 

 

Java code page 1

 

package com.example.demo_viewpager2;

import android.os.Bundle;

import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * A simple {@link
Fragment} subclass.
 * Use the {@link
page1#newInstance} factory method to
 * create an instance of this fragment.
 */
public class page1 extends Fragment {

   
// TODO: Rename parameter arguments, choose names that match
   
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
   
private static final String ARG_PARAM1 = "param1";
   
private static final String ARG_PARAM2 = "param2";

   
// TODO: Rename and change types of parameters
   
private String mParam1;
   
private String mParam2;

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

   
/**
     * Use this factory method to create a new instance of
     * this fragment using the provided parameters.
     *
     * @param
param1 Parameter 1.
     * @param
param2 Parameter 2.
     * @return A new instance of fragment page1.
     */
    //
TODO: Rename and change types and number of parameters
   
public static page1 newInstance(String param1, String param2) {
       
page1 fragment = new page1();
       
Bundle args = new Bundle();
       
args.putString(ARG_PARAM1, param1);
       
args.putString(ARG_PARAM2, param2);
       
fragment.setArguments(args);
       
return fragment;
    }

   
@Override
   
public void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
       
if (getArguments() != null) {
           
mParam1 = getArguments().getString(ARG_PARAM1);
           
mParam2 = getArguments().getString(ARG_PARAM2);
        }
    }

   
@Override
   
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                            
Bundle savedInstanceState) {
       
// Inflate the layout for this fragment
        
return inflater.inflate(R.layout.fragment_page1, container, false);
    }
}