TabLayout with both image and calculation(Java & XML)
ImageFragment.java package com.example.tablayout; import android.os.Bundle; import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; public class ImageFragment extends Fragment { public ImageFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_image, container, false); ImageView imageView = view.findViewById(R.id.imageView); imageView.setImageResource(R.drawable.sample_image); // Add an image to your drawable folder return view; } } Image (XML) android:layout_width="match_parent" android:layout_height="match_parent"> MainActivity.java package com.example.tablayout; import android.os.Bundle; import com.google.android.material.tabs.TabLayout; import com.google.android.material.tabs.TabLayoutMediator; import androidx.appcompat.app.AppCompatActivity; import androidx.viewpager2.widget.ViewPager2; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TabLayout tabLayout = findViewById(R.id.tabLayout); ViewPager2 viewPager = findViewById(R.id.viewPager); ViewPagerAdapter adapter = new ViewPagerAdapter(this); viewPager.setAdapter(adapter); new TabLayoutMediator(tabLayout, viewPager, (tab, position) -> { if (position == 0) { tab.setText("Image"); } else { tab.setText("Sum Calculator"); } }).attach(); } } MainActivity (XML) xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> ViewPagerAdapter.java package com.example.tablayout; 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) { if (position == 0) { return new ImageFragment(); } else { return new SumFragment(); } } @Override public int getItemCount() { return 2; // Two fragments (Image and Sum Calculator) } } SumFragment.java package com.example.tablayout; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import androidx.fragment.app.Fragment; public class SumFragment extends Fragment { public SumFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_sum, container, false); EditText editText1 = view.findViewById(R.id.editText1); EditText editText2 = view.findViewById(R.id.editText2); Button button = view.findViewById(R.id.calculateButton); button.setOnClickListener(v -> { String num1 = editText1.getText().toString(); String num2 = editText2.getText().toString(); if (!num1.isEmpty() && !num2.isEmpty()) { int sum = Integer.parseInt(num1) + Integer.parseInt(num2); Toast.makeText(getActivity(), "Sum: " + sum, Toast.LENGTH_SHORT).show(); } }); return view; } } sumfragment (XML) android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp">

ImageFragment.java
package com.example.tablayout;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
public class ImageFragment extends Fragment {
public ImageFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_image, container, false);
ImageView imageView = view.findViewById(R.id.imageView);
imageView.setImageResource(R.drawable.sample_image); // Add an image to your drawable folder
return view;
}
}
Image (XML)
android:layout_width="match_parent"
android:layout_height="match_parent">
MainActivity.java
package com.example.tablayout;
import android.os.Bundle;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager2.widget.ViewPager2;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TabLayout tabLayout = findViewById(R.id.tabLayout);
ViewPager2 viewPager = findViewById(R.id.viewPager);
ViewPagerAdapter adapter = new ViewPagerAdapter(this);
viewPager.setAdapter(adapter);
new TabLayoutMediator(tabLayout, viewPager, (tab, position) -> {
if (position == 0) {
tab.setText("Image");
} else {
tab.setText("Sum Calculator");
}
}).attach();
}
}
MainActivity (XML)
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
ViewPagerAdapter.java
package com.example.tablayout;
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) {
if (position == 0) {
return new ImageFragment();
} else {
return new SumFragment();
}
}
@Override
public int getItemCount() {
return 2; // Two fragments (Image and Sum Calculator)
}
}
SumFragment.java
package com.example.tablayout;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.fragment.app.Fragment;
public class SumFragment extends Fragment {
public SumFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_sum, container, false);
EditText editText1 = view.findViewById(R.id.editText1);
EditText editText2 = view.findViewById(R.id.editText2);
Button button = view.findViewById(R.id.calculateButton);
button.setOnClickListener(v -> {
String num1 = editText1.getText().toString();
String num2 = editText2.getText().toString();
if (!num1.isEmpty() && !num2.isEmpty()) {
int sum = Integer.parseInt(num1) + Integer.parseInt(num2);
Toast.makeText(getActivity(), "Sum: " + sum, Toast.LENGTH_SHORT).show();
}
});
return view;
}
}
sumfragment (XML)
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">