zoukankan      html  css  js  c++  java
  • android 16 带返回值的activity

    main.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <Button
            android:id="@+id/btnLogin"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="登陆" />
        <Button
            android:id="@+id/btnRegister"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="注册" />
        
    </LinearLayout>

    login.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <TableLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:stretchColumns="1" >
    
            <TableRow>
    
                <TextView android:text="输入编号" />
    
                <EditText android:hint="2-10个字符" 
                    android:id="@+id/etId"/>
            </TableRow>
    
            <TableRow>
    
                <TextView android:text="密码" />
    
                <EditText
                    android:id="@+id/etPwd"
                    android:hint="2-10个字符"
                    android:password="true" />
            </TableRow>
        </TableLayout>
    
        <TableLayout
            android:layout_marginTop="20dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:stretchColumns="0,1" >
    
            <TableRow>
    
                <Button
                    android:id="@+id/btnLogin"
                    android:background="@drawable/btn_bg"
                    android:drawableLeft="@drawable/login32x32"
                    android:padding="3dp"
                    android:text="登陆" 
                    android:textColor="#fff"
                    android:layout_gravity="center_horizontal"/>
    
                <Button
                    android:id="@+id/btnExit"
                    android:background="@drawable/btn_bg"
                    android:drawableLeft="@drawable/exit32x32"
                    android:padding="3dp"
                    android:text="退出" 
                    android:textColor="#fff"
                    android:layout_gravity="center_horizontal"/>
            </TableRow>
        </TableLayout>
    
    </LinearLayout>

     mainActivity

    package com.sxt.day04_02;
    
    import com.sxt.day04_02.entity.User;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    
    public class MainActivity extends Activity {
        static final int ACTION_LOGIN=0;
        static final int ACTION_REGISTER=10;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            setListener();//设置监听器
        }
    
        //设置监听器
        private void setListener() {
            setLoginClickListener();
            setRegisterClickListener();
        }
    
        private void setRegisterClickListener() {
            findViewById(R.id.btnRegister).setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    
                }
            });
        }
    
        private void setLoginClickListener() {
            findViewById(R.id.btnLogin).setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    Intent intent=new Intent(MainActivity.this, LoginActivity.class);//当前activity和目标activity
                    startActivityForResult(intent, ACTION_LOGIN);//启动LoginActivity并且要求他返回结果,ACTION_LOGIN请求码0,
                }
            });
        }
        
        @Override//接收acticity返回的结果
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {//requestCode是请求码,就是这里的ACTION_LOGIN,resultCode是loginactivity的返回值OK,data是loginactivity的Intent对象。
            super.onActivityResult(requestCode, resultCode, data);
            if(resultCode!=RESULT_OK){
                return ;
            }
            switch (requestCode) {
            case ACTION_LOGIN:
                User user=(User) data.getSerializableExtra("user");
                Log.i("main",user.toString());
                break;
            case ACTION_REGISTER:
                
                break;
            }
        }
    }

    loginActivity:

    package com.sxt.day04_02;
    
    import com.sxt.day04_02.entity.User;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.text.TextUtils;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.EditText;
    
    public class LoginActivity extends Activity {
        EditText metId,metPwd;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login);
            initView();
            setListener();
        }
    
        private void setListener() {
            setLoginClickListener();
            setExitClickListener();
        }
    
        private void setExitClickListener() {//退出则不返回结果,
            findViewById(R.id.btnExit).setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();
                }
            });
        }
    
        private void setLoginClickListener() {
            findViewById(R.id.btnLogin).setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    String id=metId.getText().toString();
                    if(TextUtils.isEmpty(id)){
                        metId.setError("编号不能为空");
                        return ;
                    }
                    String pwd=metPwd.getText().toString();
                    if(TextUtils.isEmpty(pwd)){
                        metPwd.setError("密码不能为空");
                        return ;
                    }
                    User user=new User(Integer.parseInt(id), pwd);
                    Intent data=new Intent(LoginActivity.this, MainActivity.class);//当前activity和返回的activity
                    data.putExtra("user", user);
                    setResult(RESULT_OK, data);//设置返回结果,
                    finish();//关闭当前activity
                }
            });
        }
    
        private void initView() {
            metId=(EditText) findViewById(R.id.etId);
            metPwd=(EditText) findViewById(R.id.etPwd);
        }
    
    }
  • 相关阅读:
    Triangle
    Populating Next Right Pointers in Each Node II
    Populating Next Right Pointers in Each Node
    面试题之判断栈的入栈和出栈序列的合法性
    对称矩阵的压缩存储和输出
    栈的经典面试题之用两个栈实现一个队列
    C++的三大特性之一继承
    C++之类的析构函数
    malloc函数的底层实现你是否清楚
    【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结,再也不愁发博客了
  • 原文地址:https://www.cnblogs.com/yaowen/p/4884106.html
Copyright © 2011-2022 走看看