2017-01-12 6 views
0

に代わるものではありませんでしたが、何もAndroidの断片が、これはそれがすべてのエラーを取得していない私のコードで私は2つのxml活動(ログイン、サインアップ) を開発し、私は2つのXML活動</p> <p>で断片を交換するために2つのボタンをしたい

Button btn1,btn2; 
Fragment loginfrag,signupfrag; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    btn1 = (Button) findViewById(R.id.login_button); 
    btn2 = (Button) findViewById(R.id.signup_button); 
    loginfrag = new loginfr(); 
    signupfrag = new signupfr(); 
    btn1.setOnClickListener(this); 
    btn2.setOnClickListener(this); 
} 

@Override 
public void onClick(View view) { 
    FragmentManager fm = getFragmentManager(); 
    FragmentTransaction ft = fm.beginTransaction(); 
    if (view == btn1) 
    { 
     ft.replace(R.id.fragment_screen,loginfrag); 
     ft.commit(); 
     Toast.makeText(this,"login",Toast.LENGTH_LONG); 
    } 
    else if (view == btn2){ 
     ft.replace(R.id.fragment_screen,signupfrag); 
     ft.commit(); 
     Toast.makeText(this,"signup",Toast.LENGTH_LONG); 

    } 
} 

を起こりませんし、これは、ログインの活動である

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#ffffff"> 

    <LinearLayout 
     android:id="@+id/tab1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 
     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:paddingRight="24dp" 
      android:weightSum="1"> 

      <!-- Email Label --> 
      <EditText 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/Email" 
       android:hint="Eamil"/> 

      <!-- Password Label --> 
      <EditText 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/password" 
       android:hint="password"/> 

      <Button 
       android:id="@+id/btn_login" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="24dp" 
       android:layout_marginBottom="24dp" 
       android:layout_gravity="center" 
       android:textAlignment="center" 
       android:text="تسجيل الدخول"/> 

      <TextView android:id="@+id/link_signup" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="24dp" 
       android:text="ليس لديك حساب؟سجل الآن" 
       android:textColor="#f000" 
       android:gravity="center" 
       android:textSize="16dip"/> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 

サインアップ活動

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#ffffff"> 

    <LinearLayout 
     android:id="@+id/tab1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 
     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingTop="56dp" 
      android:paddingLeft="24dp" 
      android:paddingRight="24dp" 
      android:weightSum="1"> 


      <!-- Email Label --> 
      <EditText 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/Email_signup" 
       android:hint="Eamil"/> 

      <!-- Password Label --> 
      <EditText 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/password_signup" 
       android:hint="password"/> 

      <Button 
       android:id="@+id/btn_signup" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="24dp" 
       android:layout_marginBottom="24dp" 
       android:layout_gravity="center" 
       android:textAlignment="center" 
       android:text="تسجيل عضوية جديدة "/> 

      <TextView android:id="@+id/link_login" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="24dp" 
       android:text=" لديك حساب؟قم بتسجيل الدخول" 
       android:textColor="#f000" 
       android:gravity="center" 
       android:textSize="16dip"/> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 

は主な活動では、これはXML

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/buttons_container" 
     android:layout_below="@id/line0"> 
     <Button 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/signup_button" 
      android:layout_weight="1" 
      android:text="التسجيل"/> 
     <Button 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/login_button" 
      android:layout_weight="1" 
      android:text="تسجيل الدخول" /> 
    </LinearLayout> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="20dp" 
     android:layout_below="@id/buttons_container" 
     android:id="@+id/relativeLayout"> 

     <fragment 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:name="com.example.amr.testapp.loginfr" 
      tools:layout="@layout/login" 
      android:id="@+id/fragment_screen" 
      android:layout_below="@id/buttons_container" /> 
    </RelativeLayout> 
+0

はトーストでありますメッセージが表示されますか? – rafsanahmad007

+0

いいえ,,, –

答えて

0

いけない静的(xml定義)Fragmentにおける全てを使用することです。 <fragment />タグをactivity_main.xmlFrameLayoutに置き換え、フラグメントを動的に読み込みます。

編集:私もちょうどあなたが一例として、view.getId() == R.id.login_buttonview == btn1を交換してみなければならない気づきました。

編集2:onCreate()に以下を追加し、動的Fragment場合Activity最初にロードをロードするには:

if(getFragmentManager().findFragmentById(R.id.fragment_screen) == null) { 
    getFragmentManager() 
     .beginTransaction() 
     .add(R.id.fragment_screen, loginfrag) 
     .commit(); 
} 
+0

ありがとうございましたが、フラグメントロード時にログインアクティビティを設定したいのですが、どうすればいいですか? –

+0

@AmrKamal 'Activity'を起動する手順は' Fragment'とは異なります。 – PPartisan

+0

私は、アプリケーションをランチするときにデフォルトでログインアクティビティを実行させることを意味します。今は空の1つを得ました –

0

フラグメントを置換するため、このコードを使用:

@Override 
public void onClick(View v) { 
    Category fragment2 = new Category(); 
    FragmentManager fragmentManager = getFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    fragmentTransaction.replace(R.id.homeFrag, fragment2,"Home").addToBackStack("Home"); 
    fragmentTransaction.commit(); 
} 
関連する問題