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">

Feb 26, 2025 - 08:26
 0
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">