简体   繁体   English

如何在一个活动中处理两种布局上的小部件

[英]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. 我有以下代码要执行的操作:单击sigup textview时,它应该显示第二个布局,该布局是相对布局顶部的linearlayout。 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. xml文件已附加。

    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文件

 <?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. 一次调用onCreate方法。

So when it's executed during Activity creation it finds if(visibility1==View.VISIBLE) that is not true (because adminacesslayout has visibility GONE ). 因此,当在创建Activity期间执行它时,它会发现if(visibility1==View.VISIBLE)不是true(因为adminacesslayout visibility GONE )。

In this manner you don't inflate adminlogin and you don't set up any Button.OnClickListener on it. 这样,您就不会膨胀adminlogin ,也不会在其上设置任何Button.OnClickListener

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)
{

 ...

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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