-1

i have project content login page (it have 2 Edit Text and button "login") , when i pressed "login button" it will go to another activity which is "tabbed activity" , it have 2 tap .

Now can anyone help me how to pass data from "login activity , EditText" To "each tab" ??.

My code in SelectionPagerAdapter.java :

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    @StringRes
    private static final int[] TAB_TITLES = new int[]{R.string.tab_text_1, R.string.tab_text_2};
    private final Context mContext;

    public SectionsPagerAdapter(Context context, FragmentManager fm) {
        super(fm);
        mContext = context;
    }

    @Override
    public Fragment getItem(int position ) {
        // getItem is called to instantiate the fragment for the given page.
        // Return a PlaceholderFragment (defined as a static inner class below).
        //return PlaceholderFragment.newInstance(position + 1);
        Fragment fragment = null;
        switch (position)
        {
            case 0:
                fragment = new frag2();
                Bundle bun = new Bundle();
                bun.putString("NAME" , "Moaaz");
                fragment.setArguments(bun);
                break;
            case 1:
                fragment = new frag3();
                Bundle bun1 = new Bundle();
                bun1.putString("NAME" , "Moaaz2");
                fragment.setArguments(bun1);
                break;
        }
        return fragment;

    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return mContext.getResources().getString(TAB_TITLES[position]);
    }

    @Override
    public int getCount() {
        // Show 2 total pages.
        return 2;
    }
}

My code in frag2.java :

public class frag2 extends Fragment {


    public frag2() {
        // 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_frag2, container, false);
        TextView tes=(TextView) view.findViewById(R.id.testV1);
        String strtext = getArguments().getString("NAME");

        tes.setText("Name :" + strtext );
        return  view;
    }

}

and this is login Activity :

public class register extends AppCompatActivity {
     private Button singin ;

      EditText name , password , email ;

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

        name = findViewById(R.id.registerUsername);
        password = findViewById(R.id.registerPw);
        email = findViewById(R.id.registerEmail);

        singin = findViewById(R.id.singinbtn);
        singin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                goHomePage();
            }
        });
    }

    public void goHomePage(){
        String nameValue = name.getText().toString();
        String pwValue = password.getText().toString();
        String emailValue = email.getText().toString();

      Intent intent = new Intent(register.this , HomePage.class);
        intent.putExtra("NAME" , nameValue);
        intent.putExtra("PW" , pwValue);
        intent.putExtra("EMAIL" , emailValue);



        startActivity(intent);
    }

}

NOTE : HomePage.java is the main class to tapped Activity .

public class HomePage extends AppCompatActivity {
    String name , pw , email ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home_page);
        SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(this, 
        getSupportFragmentManager());
        ViewPager viewPager = findViewById(R.id.view_pager);
        viewPager.setAdapter(sectionsPagerAdapter);
        TabLayout tabs = findViewById(R.id.tabs);
        tabs.setupWithViewPager(viewPager);



        name = (getIntent().getStringExtra("NAME"));
        pw =  getIntent().getStringExtra("PW") ;
        email =  getIntent().getStringExtra("EMAIL") ;

        Fragment frag = new frag2();
        Bundle bun = new Bundle();
        bun.putString("NAME" , name);
        frag.setArguments(bun);

    }
}

Now can anyone help me how to pass data from "login activity , EditText" To "each tap" ??.

1 Answers1

0

If you want to move to a specific Fragment in a viewpager you can try this

 viewPager.setCurrentItem(0);//for first fragment
 viewPager.setCurrentItem(1);//for second fragment you put in the adapter

To pass data from activity to fragment you would have to use bundles. This is the best solution I know, could be a little tricky to understand for beginners but its straight forward.

NIKHIL MAURYA
  • 289
  • 1
  • 15