2017-12-29 6 views
0

私はフラグメントであり、1つはログイン(ログインフラグメント)用の2つのタブを持っています。ログインをクリックすると、新しいアクティビティ(ログインアクティビティ)がポップアップし、ユーザーはログインする必要があります。ログインに成功すると、ログインアクティビティはfinish()で終了します。そして、タブのレイアウトをログインフラグメントからウェルカムフラグメントに変更したい、onActivityResult()を使用しています。プログラムでフラグメントのレイアウトを変更する

私は、ログインフラグメントレイアウトとウェルカムフラグメントレイアウトの2つのレイアウトを作成しました。しかし、setContentView()は使用できないので、レイアウトを変更する方法はわかりません。 login.xmlwelcome.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) 
     } 
    } 
} 


} 

答えて

0

を使用すると、2つのXMLレイアウトファイルがあるとします。各XMLレイアウトファイルに対して、FragmentLoginFragmentWelcomeFragmentを拡張するクラスを作成する必要があります。次に、FragmentPagerAdapterサブクラスで、これら2つのフラグメントのどちらを表示するかを決定するロジックを書きます。 loggedInフラグがあります。SharedPreferencesに格納されている可能性があります。ユーザーが既にログインしているかどうかを示します。

+0

私は 'FragmentPagerAdapter'を使ってそれらを維持しています。そのタブにあるときにフラグメントクラスオブジェクトを作成します – androidnewbie

+0

@androidnewbie詳細については私の編集した答えを見てください。 –

関連する問題