zoukankan      html  css  js  c++  java
  • [android] activity基础

    //MainActivity
    package cn.eoe.helloeoe;
    
    import android.support.v7.app.ActionBarActivity;
    import android.R.string;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    
    public class MainActivity extends ActionBarActivity {
    
        private Button btnStartAty1;
        private TextView tvOut;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            btnStartAty1 = (Button) findViewById(R.id.btnStartAty1);
            tvOut = (TextView) findViewById(R.id.tvOut);
            
            btnStartAty1.setOnClickListener(new View.OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    Intent i = new Intent(MainActivity.this, Aty1.class);
                    i.putExtra("text", "get from main");
    //                startActivity(i);
                    
                    startActivityForResult(i, 0);
                }
            });
            
            
            
            System.out.println("onCreate!!");
        }
        
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            
            String result = data.getStringExtra("result");
            tvOut.setText(result);
            super.onActivityResult(requestCode, resultCode, data);
        }
    
        @Override
        protected void onStart() {
            System.out.println("onStart");
            super.onStart();
        }
        
        @Override
        protected void onResume() {
            System.out.println("onResume");
            super.onResume();
        }
        
        @Override
        protected void onPause() {
            System.out.println("onPause");
            super.onPause();
        }
        
        @Override
        protected void onStop() {
            System.out.println("onStop");
            super.onStop();
        }
        
        @Override
        protected void onDestroy() {
            System.out.println("onDestroy");
            super.onDestroy();
        }
        
        @Override
        protected void onRestart() {
            System.out.println("onRestart");
            super.onRestart();
        }
        
    }
    //son activity
    public class Aty1 extends Activity {
        
        private Button btnClose;
        private TextView tvOut;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.aty1);
            
            btnClose = (Button) findViewById(R.id.btnClose);
            btnClose.setOnClickListener(new View.OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    Intent result = new Intent();
                    result.putExtra("result", "from Aty1");
                    setResult(0,result);
                    finish();
                }
            });
            
            tvOut = (TextView) findViewById(R.id.tvOut);
            String fromMain = getIntent().getStringExtra("text");
            tvOut.setText(fromMain);
        }
    }

    activity声明周期以及自动调用的函数

    (1)第一次启动会调用oncreate onstart onresume

    (2)被其他activity挡住当前activity会调用onpause

    (3)如果activity在onpause后系统需要更多内存,则会杀死activity,并调用onstop;

    1、试用了插件后,可在对应的资源文件xml中修改其id号,并使用findViewById()找到插件;

    2、监听按钮

    btnStartAty1.setOnClickListener(new View.OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    Intent i = new Intent(MainActivity.this, Aty1.class);
                    i.putExtra("text", "get from main");
    //                startActivity(i);
                    startActivityForResult(i, 0);
                }
            });

    setOnClickListener()要求传入一个OnClickListener的实例,于是直接编写匿名函数,并重写onclick函数;

    函数中使用一个intent装载了一个父acitivity和一个子activity的class,并使用startActivity()可打开一个新的activity;

    如果使用startActivityForResult()打开一个activity,则可以监听其返回值,用于两个activity之间的数据互通;

    3、子activity返回结果

    使用setResult()与父activity交换数据,父activity重写

    @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            
            String result = data.getStringExtra("result");
            tvOut.setText(result);
            super.onActivityResult(requestCode, resultCode, data);
        }

    接受setresutl的结果,data就是setresult传回来的intent;

    4、使用finish()关闭一个activity;

  • 相关阅读:
    Golang的标准命令简述
    Golang的环境安装
    初识Golang编程语言
    基于Ambari的WebUI部署Hive服务
    基于Ambari Server部署HDP集群实战案例
    HBase shell常用命令总结
    HBase完全分布式集群搭建
    HBase工作原理概述
    面向对象-接口(interface)实战案例
    myBatis 简介
  • 原文地址:https://www.cnblogs.com/iyjhabc/p/4020930.html
Copyright © 2011-2022 走看看