zoukankan      html  css  js  c++  java
  • android studio开发笔记五

    1.activity:一个应用程序组件,提供用户与程序交互的界面
    2.android四大组件:
    --activity --service --BroadcastReceiver --Content Provider
    3.如何创建使用activity
    (1)继承android的acivity的类
    (2)重写方法
    (3)设置显示布局
    (4)在androidmanifest文件中,注册activity
    4.activity的生命周期:创建--->销毁
    onCreate()创建 onStart()运行 onResume()获取焦点
    onPause()失去焦点 onStop()暂停 onDestroy()销毁 onRestart()
    onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy()
    5.activity的四种状态:
    (1)活动状态:activity处于界面最顶端,获取焦点
    (2)暂停状态:activity失去焦点,但对用户可见,程序暂停
    (3)停止状态:activity被完全遮挡,但保留所有的状态和成员信息
    比如返回home界面,程序在后台运行
    (4)非活动状态:activity被停止


    Intent
    1.由Intent来协助完成andro各个组件之间的通信
    2.实现跳转方式:
    (1)>startActivity(intent)--无返回结果
    (2)>startActivityForResult(intent,requestCode)
    --有返回结果,即两个页面能够进行数据的交换
    >onActivityResult()
    >setResult()
    代码:
    manifest文件:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.administrator.myintent">
    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
    </activity>
    <activity android:name=".FActivity">
    //下面这段代码,表示以此为首页
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    <activity android:name=".SActivity">
    </activity>

    </application>

    </manifest>


    第一个页面的代码:
    public class FActivity extends Activity {
    private Button bt1;
    private Button bt2;
    private TextView tv;
    @Override
    protected void onCreate(Bundle saveInstanceState){
    super.onCreate(saveInstanceState);
    setContentView(R.layout.factivity);
    /*
    通过点击bt1实现页面之间的跳转
    1.startactivity的方式来实现
    1.>初始化intent
    */
    bt1=(Button)findViewById(R.id.button1_first);
    bt2=(Button)findViewById(R.id.button2_first);
    tv=(TextView)findViewById(R.id.textView1);
    bt1.setOnClickListener(new View.OnClickListener() {
    /*
    第一个参数:上下文this
    第二个参数:目标文件
    */
    @Override
    public void onClick(View v) {
    Intent intent=new Intent(FActivity.this,SActivity.class);
    startActivity(intent);
    }
    });
    /*
    通过startActivityForresult实现
    */
    bt2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Intent intent=new Intent(FActivity.this,SActivity.class);
    /*
    第一个参数是Intent参数
    第二个参数是请求的一个标识,为整数类型
    */
    startActivityForResult(intent,1);
    }
    });
    }
    /*
    通过startActivityForResult跳转,接受返回的数据
    第一个参数:请求的标识
    第二个参数:第二个页面返回的标识,即能够知道是从哪个页面返回过来的
    第三个参数:第二个页面回传的数据
    */
    @Override
    protected void onActivityResult(int requestCode,int resultCode,Intent data){
    super.onActivityResult(requestCode,requestCode,data);
    if(requestCode==1&&resultCode==2){
    String content=data.getStringExtra("data");
    tv.setText(content);
    }
    }
    }
    第二个页面的代码:
    public class SActivity extends Activity {
    private Button bt;
    private String content="这是第二个页面返回的数据";
    @Override
    protected void onCreate(Bundle hInstace){
    super.onCreate(hInstace);
    setContentView(R.layout.sactivity);
    /*
    第二个页面什么时候开始回传数据
    回传到第一个页面的数据实际上是一个Intent对象
    */
    bt=(Button)findViewById(R.id.button1_second);
    bt.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Intent data=new Intent();
    data.putExtra("data",content);
    //回传数据
    setResult(2,data);
    //结束当前页面
    finish();
    }
    });
    }
    }

  • 相关阅读:
    hbase scan超时问题
    hadoop的shuffle和排序
    MapReduce作业的调度
    hadoop hdfs问题集锦
    JVM--双亲委派机制
    springboot快速搭建
    CircleView
    TabHost实现底部导航栏
    GridView的stretchMode属性
    Android直连SQL Server数据库
  • 原文地址:https://www.cnblogs.com/xy95/p/5840047.html
Copyright © 2011-2022 走看看