如何在有效登录表单后显示第二个片段中的登录

时间:2016-05-11 09:03:40

标签: java android android-fragments

你好,我有一个导航抽屉。在主要活动中,我有一个登录表单

<EditText android:id="@+id/et_login"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"
                android:hint="@string/Login" />
<EditText android:id="@+id/et_password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textPassword"
                android:hint="@string/Password"/>
<Button
            android:id="@+id/btn_valider"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_marginBottom="20dp"
            android:background="@drawable/colorbutton"
            android:padding="12dp"
            android:text="@string/Connexion"/>

如果密码,登录名和类型为true,则会打开AdminAccount

MainActivity.java

if(d.equalsIgnoreCase(et_password.getText().toString())&& d3.equals("Admin"))
            {
                Intent intent = new Intent(MainActivity.this,AdminAccount.class);
                startActivity(intent);
            }

我想在textview登录

中显示该用户的登录信息

fragment_account_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent" android:layout_height="match_parent">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/text"
            android:text="welcome"></TextView>
<TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/text"
            android:text="login"></TextView>
    </FrameLayout>

单击第一个项目,将打开片段AccountFragment。

AdminAccount.java

public class AdminAccount extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener, OnMapReadyCallback {
........
if (id == R.id.nav_camera) {
            fm.beginTransaction().replace(R.id.content_frame, new AccountFragment()).commit();
        } else if (id == R.id.nav_produit) {
            fm.beginTransaction().replace(R.id.content_frame, new ProductFragment()).commit();
        }
}

登录也应该显示在edittext et_login

AccountFragment.xml

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent" android:layout_height="match_parent">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="1dp"
            android:paddingLeft="60dp"
            android:paddingRight="58dp">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Bienvenue"
                android:id="@+id/welcome" />
                <EditText android:id="@+id/et_login"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="Login" />
<TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:id="@+id/et_nom" />
        </LinearLayout>
    </FrameLayout>

AccountFrafment.java

public class AccountFragment extends Fragment {
    private TextView welcome;
private EditText et_login;
}

提前致谢

1 个答案:

答案 0 :(得分:0)

首先,将登录文本从First Activity传递给Second Activity。 https://stackoverflow.com/a/20170125/4586742

然后,将第二个活动的登录文本传递给Fragment。 https://stackoverflow.com/a/12739968/4586742

在片段中获取登录文字(如上面链接中所述),并将其设置为TextView / EditText

编辑:

getText()是从EditText获取键入的字符串。

Intent intent = new Intent(this,AdminAccount.class);

intent.putExtra("login", yourEditText.getText().toString()); 

startActivity(intent); 

编辑2: (来自你的评论)

将此行fm.beginTransaction().replace(R.id.content_frame, new AccountFragment()).commit();更改为fm.beginTransaction().replace(R.id.content_frame, fragobj).commit();