我写了这段代码用于登录和聊天; 登录是一项活动,聊天是一个片段;这是我的活动:
public class Consultant extends AppCompatActivity {
private FirebaseAuth auth;
private Button loginbtn;
private EditText email;
private EditText pass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_consultant);
auth = FirebaseAuth.getInstance();
loginbtn = (Button) findViewById(R.id.loginbtn);
email = (EditText) findViewById(R.id.email);
pass = (EditText) findViewById(R.id.pass);
loginbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkEmailandpassword();
}
});
}
public boolean checkEmailandpassword() {
if (validate()) {
String CEmail = email.getText().toString().trim();
String CPass = pass.getText().toString().trim();
auth.signInWithEmailAndPassword(CEmail, CPass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Toast.makeText(Consultant.this, "welcome", Toast.LENGTH_LONG).show();
Intent i = new Intent(Consultant.this,Consultant_Home_Chatting.class);
startActivity(i);
} else {
Toast.makeText(Consultant.this, "wrong ", Toast.LENGTH_LONG).show();
}
}
});
}
return false;
}
private boolean validate() {
boolean result = false;
String CPass = pass.getText().toString();
String CEmail = email.getText().toString();
if (CPass.isEmpty() || CEmail.isEmpty()) {
Toast.makeText(Consultant.this, "all fields required", Toast.LENGTH_LONG).show();
} else {
result = true;
}
return result;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_nav, menu);
return true;
}
}
这是我的片段:
public class Consultant_Home_Chatting extends Fragment {
private ViewPager mViewP ;
private FirebaseAuth mAuth ;
private TabLayout mTab ;
private TabsPagerAdapter mAdapter ;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_consultant__home__chatting, container, false);
}
public Consultant_Home_Chatting() {
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
mAuth = FirebaseAuth.getInstance();
mViewP = (ViewPager) getView().findViewById(R.id.main_tabs_pager);
mAdapter = new TabsPagerAdapter(getFragmentManager());
mViewP.setAdapter(mAdapter);
mTab = (TabLayout) getView().findViewById(R.id.main_tabs);
mTab.setupWithViewPager(mViewP);
}
我试图添加一个包含这些留置权的新类,然后在我的片段中创建一个构造函数,并在我的活动中创建onCreatOptions方法,但是它不起作用! 我认为解决方案是使用捆绑包,但我不知道如何使用它,或者我可以使用它,而且我可以在里面寄额外的东西,请帮忙吗?
if (savedInstanceState == null){
getFragmentManager().beginTransaction()
.add(android.R.id.content, new Consultant_Home_Chatting ()).commit();}
答案 0 :(得分:0)
要使用包简单,请创建片段的实例,然后创建包,将所需的所有数据添加到该片段中。 这是示例:
活动中:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TestFragment testFragment = new TestFragment();
Bundle bundle = new Bundle();
bundle.putString("name", "John");
bundle.putInt("age", 24);
testFragment.setArguments(bundle);
getSupportFragmentManager()
.beginTransaction()
.add(R.id.content, testFragment).commit();
}
在您的片段中:
public class TestFragment extends Fragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getArguments();
if(bundle != null){
String name = bundle.getString("name");
int age =`enter code here` bundle.getInt("age");
}
}
}