简体   繁体   中英

how to handle the widgets on the two layouts in one activity

I have the following code in which I want to do is when the sigup textview is clicked then it should show the second layout which is linearlayout on top of the relative layout. It is working to this point. Next I want to show another layout with the signup details when the button Allow is clicked on the second screen but that is not happening. the xml file is attached.

    package care.e_eyepewsversion2;

public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button login = (Button) findViewById(R.id.loginbutton);
        TextView signup= (TextView) findViewById(R.id.signup);

        EditText email1 = (EditText) findViewById(R.id.Email);
        EditText password1 = (EditText) findViewById(R.id.Password);


        if (signup != null) {
            signup.setOnClickListener(new TextView.OnClickListener(){
                public void onClick(View V){
                    Button login = (Button) findViewById(R.id.loginbutton);
                    login.setVisibility(View.INVISIBLE);
                    LinearLayout adminacesslayout= (LinearLayout) findViewById(R.id.adminaccesslayout) ;
                    int visibility = adminacesslayout.getVisibility();

                    if(visibility==View.GONE)
                    {adminacesslayout.setVisibility(View.VISIBLE);}
                }
            }
            );
        }

        LinearLayout adminacesslayout= (LinearLayout) findViewById(R.id.adminaccesslayout) ;
        int visibility1=adminacesslayout.getVisibility();
        if(visibility1==View.VISIBLE)
        {

            Button adminlogin = (Button) findViewById(R.id.adminpassbutton);

            if (adminlogin != null) {
               adminlogin.setOnClickListener(new Button.OnClickListener(){
                 public void onClick(View V){
                     EditText adminpass= (EditText) findViewById(R.id.admiinpass);
                     String adminpasswordtyped= adminpass.getText().toString();

                 //       if("1234".equals(adminpasswordtyped))
                //        {   LinearLayout adminacesslayout= (LinearLayout) findViewById(R.id.adminaccesslayout) ;
                //            adminacesslayout.setVisibility(View.GONE);
                //        }
                       RelativeLayout signuplayout= (RelativeLayout) findViewById(R.id.signup_layout);
                      int visibility2=signuplayout.getVisibility();
                      if(visibility2==View.GONE)
                   {
                       LinearLayout adminacesslayout= (LinearLayout) findViewById(R.id.adminaccesslayout) ;
                       adminacesslayout.setVisibility(View.GONE);
                       signuplayout.setVisibility(View.VISIBLE);
                   }


                   }

                }

                );
           }
        }



        login.setOnClickListener(new Button.OnClickListener() {
                                     public void onClick(View V) {
                                         checkdetails();
                                     }

                                 }
        );
    }

    public void checkdetails() {
        EditText email = (EditText) findViewById(R.id.Email);
        EditText password = (EditText) findViewById(R.id.Password);
        String emailtyped = email.getText().toString();
        String passwordtyped = password.getText().toString();
        String filename = "my file";


        //Writing to file section
        String string = "Hello world!";
        FileOutputStream outputStream;

        try {
            outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
            outputStream.write(emailtyped.getBytes());
            outputStream.write("\r\n".getBytes());
            outputStream.write(passwordtyped.getBytes());
            outputStream.close();
            Context context = getApplicationContext();
            CharSequence text = "Login history Saved";
            int duration = Toast.LENGTH_SHORT;

            Toast toast = Toast.makeText(context, text, duration);
            toast.show();
        } catch (Exception e) {
            e.printStackTrace();
        }


        //Reading from file section Text

        if (getString(R.string.firstemailtyped).equals(emailtyped)) {
            if ("1234".equals(passwordtyped)) {
                Button loogin = (Button) findViewById(R.id.loginbutton);
                TextView dummydata= (TextView) findViewById(R.id.dummydata);


               // After that, you can call read method to read one character at a time from the file and then you can print it. Its syntax is given below −

                try {
                    InputStream inputStream = openFileInput("my file");

                    if (inputStream != null) {
                        InputStreamReader streamReader = new InputStreamReader(inputStream);
                        BufferedReader bufferedReader = new BufferedReader(streamReader);

                        String l;
                        String k="";

                        while (( l = bufferedReader.readLine()) != null) {
                            // do what you want with the line
                            k=(k+l);
                            dummydata.setText(k);
                        }

                    }

                    inputStream.close(); //close the file
                } catch (IOException e) {
                    e.printStackTrace();
                }


            }
        }
    }
}

the xml file

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="care.e_eyepewsversion2.MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/log_in"
        android:id="@+id/loginbutton"
        android:layout_marginBottom="166dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:textColor="@color/login_but_text_clr"
        android:background="@color/login_button_clr"
        android:visibility="visible"
        />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:layout_alignParentEnd="true"
        android:src="@drawable/carelogo"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:ems="10"
        android:id="@+id/Email"
        android:layout_above="@+id/loginbutton"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="110dp"
        android:visibility="visible"/>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:ems="10"
        android:id="@+id/Password"
        android:layout_above="@+id/loginbutton"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="40dp"
        android:visibility="visible" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="E-EYE Platoon Early Warning System"
        android:textAlignment="center"
        android:textColor="@color/Email_password_text"
        android:textAllCaps="true"
        android:textStyle="bold"
        android:id="@+id/textView"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Email"
        android:id="@+id/textView2"
        android:layout_marginRight="30dp"
        android:textSize="15sp"
        android:textColor="@color/Email_password_text"
        android:layout_alignBottom="@+id/Email"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Password"
        android:textSize="15dp"
        android:textColor="@color/Email_password_text"
        android:id="@+id/textView3"
        android:layout_alignBottom="@+id/Password"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />



    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:id="@+id/dummydata"
        android:layout_above="@+id/imageView"
        android:layout_centerHorizontal="true" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text= "Sign Up?"
        android:textSize="20sp"
        android:textStyle="italic"
        android:textColor="@color/login_button_clr"
        android:textColorHint="@color/Email_password_text"
        android:id="@+id/signup"
        android:layout_alignBottom="@+id/loginbutton"
        />

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_centerHorizontal="true"
        android:layout_alignBottom="@+id/loginbutton"
        android:background="#539c65"
        android:id="@+id/adminaccesslayout"
        android:visibility="gone">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:text="ADMINISTRATOR PERMISSION REQUIRED"
            android:textColor="#F00000"
            android:textStyle="bold"
            android:textSize="20sp"
            android:textAlignment="center"/>
        <EditText
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:id="@+id/admiinpass"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#70FFFFFF"
            android:text="ALLOW"
            android:textStyle="bold"
            android:textColor="#FFFFFF"
            android:layout_gravity="center_horizontal"
            android:id="@+id/adminpassbutton" />
</LinearLayout>

<RelativeLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00bfff"
    android:id="@+id/signup_layout"
    android:visibility="gone">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Signup Details"
        android:textAllCaps="true"
        android:textSize="30sp"
        android:textColor="#006400"
        android:layout_centerHorizontal="true"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Name"
        android:layout_toStartOf="@+id/newusername"
        android:layout_marginTop="50dp"
        android:textSize="20sp"
        android:layout_alignBottom="@+id/newusername" />

    <EditText
        android:layout_width="190dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:id="@+id/newusername"
        android:layout_marginTop="50dp"
        android:textAllCaps="true"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Email"
        android:layout_toStartOf="@+id/newemail"
        android:textSize="20sp"
        android:layout_alignBottom="@+id/newemail" />

    <EditText
        android:layout_width="190dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:id="@+id/newemail"
        android:layout_below="@id/newusername"
        android:layout_marginTop="50dp"
        android:textAllCaps="true"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Password"
        android:layout_toStartOf="@+id/newpassword"
        android:textSize="18sp"
        android:layout_alignBottom="@+id/newpassword" />

    <EditText
        android:layout_width="190dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:id="@+id/newpassword"
        android:layout_below="@id/newemail"
        android:layout_marginTop="50dp"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/newpassword"
        android:layout_marginTop="50dp"
        android:layout_centerHorizontal="true"
        android:background="#8050"
        android:text="SIGN UP"
        android:textColor="#FFFFFF"
        android:id="@+id/signupbutton"/>


</RelativeLayout>

</RelativeLayout>

onCreate method is called once a time.

So when it's executed during Activity creation it finds if(visibility1==View.VISIBLE) that is not true (because adminacesslayout has visibility GONE ).

In this manner you don't inflate adminlogin and you don't set up any Button.OnClickListener on it.

What you need is this:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
        Button login = (Button) findViewById(R.id.loginbutton);
        TextView signup = (TextView) findViewById(R.id.signup);

        EditText email1 = (EditText) findViewById(R.id.Email);
        EditText password1 = (EditText) findViewById(R.id.Password);


        if (signup != null) {
            signup.setOnClickListener(new TextView.OnClickListener() {
                                          public void onClick(View V) {
                                              showAdminacesslayout();

                                          }
                                      }
            );
        }

        LinearLayout adminacesslayout = (LinearLayout) findViewById(R.id.adminaccesslayout);
        int visibility1 = adminacesslayout.getVisibility(); //        if(visibility1==View.VISIBLE) //        { // //            Button
adminlogin = (Button) findViewById(R.id.adminpassbutton); // //     
if (adminlogin != null) { //               
adminlogin.setOnClickListener(new Button.OnClickListener(){ //      
public void onClick(View V){ //                                     
EditText adminpass= (EditText) findViewById(R.id.admiinpass); //    
String adminpasswordtyped= adminpass.getText().toString(); // //    
//       if("1234".equals(adminpasswordtyped)) //                   
//        {   LinearLayout adminacesslayout= (LinearLayout)
findViewById(R.id.adminaccesslayout) ; //                           
//            adminacesslayout.setVisibility(View.GONE); //         
//        } //                                                     
RelativeLayout signuplayout= (RelativeLayout)
findViewById(R.id.signup_layout); //                                
int visibility2=signuplayout.getVisibility(); //                    
if(visibility2==View.GONE) //                                       
{ //                                                         
LinearLayout adminacesslayout= (LinearLayout)
findViewById(R.id.adminaccesslayout) ; //                           
adminacesslayout.setVisibility(View.GONE); //                       
signuplayout.setVisibility(View.VISIBLE); //                        
} // // //                                                  } // // 
} // //                ); //            } //        }


        login.setOnClickListener(new Button.OnClickListener() {
                                     public void onClick(View V) {
                                         checkdetails();
                                     }

                                 }
        );
    }

    private void showAdminacesslayout() {

        Button login = (Button) findViewById(R.id.loginbutton);
        login.setVisibility(View.INVISIBLE);
        LinearLayout adminacesslayout = (LinearLayout) findViewById(R.id.adminaccesslayout);
        int visibility = adminacesslayout.getVisibility();

        if (visibility == View.GONE) {
            adminacesslayout.setVisibility(View.VISIBLE);
        }

        Button adminlogin = (Button) findViewById(R.id.adminpassbutton);

        if (adminlogin != null) {
            adminlogin.setOnClickListener(new Button.OnClickListener() {
                                              public void onClick(View V) {
                                                  EditText adminpass = (EditText) findViewById(R.id.admiinpass);
                                                  String adminpasswordtyped = adminpass.getText().toString();

                                                  //       if("1234".equals(adminpasswordtyped))
                                                  //        {   LinearLayout adminacesslayout= (LinearLayout)
findViewById(R.id.adminaccesslayout) ;
                                                  //            adminacesslayout.setVisibility(View.GONE);
                                                  //        }
                                                  RelativeLayout signuplayout = (RelativeLayout) findViewById(R.id.signup_layout);
                                                  int visibility2 = signuplayout.getVisibility();
                                                  if (visibility2 == View.GONE) {
                                                      LinearLayout adminacesslayout = (LinearLayout)
findViewById(R.id.adminaccesslayout);
                                                      adminacesslayout.setVisibility(View.GONE);
                                                      signuplayout.setVisibility(View.VISIBLE);
                                                  }


                                              }

                                          }

            );
        }
    }

    public void checkdetails() {
        EditText email = (EditText) findViewById(R.id.Email);
        EditText password = (EditText) findViewById(R.id.Password);
        String emailtyped = email.getText().toString();
        String passwordtyped = password.getText().toString();
        String filename = "my file";


        //Writing to file section
        String string = "Hello world!";
        FileOutputStream outputStream;

        try {
            outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
            outputStream.write(emailtyped.getBytes());
            outputStream.write("\r\n".getBytes());
            outputStream.write(passwordtyped.getBytes());
            outputStream.close();
            Context context = getApplicationContext();
            CharSequence text = "Login history Saved";
            int duration = Toast.LENGTH_SHORT;

            Toast toast = Toast.makeText(context, text, duration);
            toast.show();
        } catch (Exception e) {
            e.printStackTrace();
        }


        //Reading from file section Text

        if ("ciao".equals(emailtyped)) { //        if (getString(R.string.firstemailtyped).equals(emailtyped)) {
            if ("1234".equals(passwordtyped)) {
                Button loogin = (Button) findViewById(R.id.loginbutton);
                TextView dummydata = (TextView) findViewById(R.id.dummydata);


                // After that, you can call read method to read one character at a time from the file and then you can print it. Its
syntax is given below −

                try {
                    InputStream inputStream = openFileInput("my file");

                    if (inputStream != null) {
                        InputStreamReader streamReader = new InputStreamReader(inputStream);
                        BufferedReader bufferedReader = new BufferedReader(streamReader);

                        String l;
                        String k = "";

                        while ((l = bufferedReader.readLine()) != null) {
                            // do what you want with the line
                            k = (k + l);
                            dummydata.setText(k);
                        }

                    }

                    inputStream.close(); //close the file
                } catch (IOException e) {
                    e.printStackTrace();
                }


            }
        }
    }


}

Or more simply you can only delete this lines, keeping the code between brackets:

int visibility1 = adminacesslayout.getVisibility();
if(visibility1==View.VISIBLE)
{

 ...

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM