私はフラグメントであり、1つはログイン(ログインフラグメント)用の2つのタブを持っています。ログインをクリックすると、新しいアクティビティ(ログインアクティビティ)がポップアップし、ユーザーはログインする必要があります。ログインに成功すると、ログインアクティビティはfinish()
で終了します。そして、タブのレイアウトをログインフラグメントからウェルカムフラグメントに変更したい、onActivityResult()
を使用しています。プログラムでフラグメントのレイアウトを変更する
私は、ログインフラグメントレイアウトとウェルカムフラグメントレイアウトの2つのレイアウトを作成しました。しかし、setContentView()
は使用できないので、レイアウトを変更する方法はわかりません。 login.xml
とwelcome.xml
:
public class UserLoginTab extends Fragment {
String username = "";
Button loginButton;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.user_login_tab, container, false);
loginButton = (Button) rootView.findViewById(R.id.btn_login);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), LoginActivity.class);
startActivityForResult(intent, 1);
}
});
return rootView;
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if(resultCode == RESULT_OK){
username=data.getStringExtra("username");
//change layout here and add the username to a textView
//The layout is (R.layout.welcome_tab)
}
}
}
}
私は 'FragmentPagerAdapter'を使ってそれらを維持しています。そのタブにあるときにフラグメントクラスオブジェクトを作成します – androidnewbie
@androidnewbie詳細については私の編集した答えを見てください。 –