Android “从活动传递数据”;如“登录页面”;标记碎片
我有项目内容登录页面(它有2个编辑文本和“登录”按钮),当我按下“登录按钮”时,它将转到另一个活动,即“选项卡式活动”,它有2个点击 现在有谁能帮我将数据从“登录活动,编辑文本”传递到“每个选项卡”?。Android “从活动传递数据”;如“登录页面”;标记碎片,android,Android,我有项目内容登录页面(它有2个编辑文本和“登录”按钮),当我按下“登录按钮”时,它将转到另一个活动,即“选项卡式活动”,它有2个点击 现在有谁能帮我将数据从“登录活动,编辑文本”传递到“每个选项卡”?。 public class HomePage extends AppCompatActivity { String name , pw , email ; @Override protected void onCreate(Bundle savedInstanceState
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);
}
}
我在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;
}
}
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;
}
}
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);
}
}
我在frag2.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;
}
}
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;
}
}
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);
}
}
这是登录活动:
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;
}
}
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;
}
}
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);
}
}
注意:HomePage.java是活动的主要类。
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);
}
}
现在有人能帮我如何将数据从“登录活动,编辑文本”传递到“每次点击”?如果您想移动到viewpager中的特定片段,可以尝试以下方法
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);
}
}
viewPager.setCurrentItem(0);//for first fragment
viewPager.setCurrentItem(1);//for second fragment you put in the adapter
要将数据从活动传递到片段,必须使用bundle。是我所知道的最好的解决方案,对初学者来说可能有点难理解,但它很简单。我想将数据从活动传递到片段非常感谢,你知道我在哪里可以找到YouTube tech me上的视频如何从头开始制作选项卡式应用程序吗?我不确定视频的质量,但一定要在互联网上搜索足够多你不确定的内容。