zoukankan      html  css  js  c++  java
  • Android学习_7/23

     

    1.        在活动中使用Menu

    1)        什么是Menu

    2)        怎么实现?

    step1res目录下创建Menu resource file,使用<item…/>

    step2:活动中创建菜单(重写onCreateOptionsMenu())

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.
    main,menu);    //inflate()方法为当前活动创建菜单
       
    return true;    //true表示允许创建的菜单显示出来
    }

    step3:定义菜单响应事件(重写onOptionsItemSelected())

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
       
    switch (item.getItemId()){
           
    case    R.id.add_item:
                Toast.makeText(
    this,"You clicked Add",Toast.LENGTH_SHORT).show();
                break;
            case   
    R.id.remove_item:
                Toast.makeText(
    this,"You clicked Remove",Toast.LENGTH_SHORT).show();
                break;
            default
    :
        }
       
    return true;
    }

    item.getItemId()判断点击哪个菜单项

          

    2.        lntent

    1)        作用:各组件间进行交互,活动响应Intent

    2)        显式IntentIntent intent = new Intent(FirstActivity.this, SecondActivity.class); 

    隐式Intent

    a)        什么活动会响应隐式Intent?

    AndroidManifest.xml活动的<action><category><data>等标签同时匹配Intent指定的actioncategory

    每个Intent对象只能指定一个actionIntent intent = new Intent("com.sprd.activitytest.ACTION_START");

    但可以指定多个categoryintent.addCategory("com.sprd.activitytest.MY_CATEGORY");(已有默认category,再加一个category)

    加上data的话:

                      intent.setData(Uri.parse("http://www.google.com"));     //setData()指定当前Intent正在操作的数据

    对应活动清单中要有<data android:scheme=”http”>

    b)        使用隐式Intent启动其他程序的活动

    上网:Intent intent = new Intent(Intent.ACTION_VIEW);

    打电话:Intent intent = new Intent(Intent.ACTION_DIAL);

    ACTION_VIEWACTION_DIAL都是系统内置的常量值。

    c)        Intent传递数据

    传数据给下一个活动:

                                                        i.              活动1使用putExtra()将数据暂存在Intent对象中,然后用这个Intent启用活动2

                   intent.putExtra("extra_data",data);     //putExtra()传递数据

                                                      ii.              活动2就可以使用getIntent()取出启用自己的Intent

                         Intent intent = getIntent();

                                                   然后用getStringExtra()去取数据值

               String data = intent.getStringExtra("extra_data");

                                        

    传数据给上一个活动:

                                                        i.              活动1使用startActivityForResult()启用活动2startActivityForResult()可以启用活动,并在活动2销毁时能够返回结果给上一个活动,即在活动2销毁时回调活动1OnActivityResult()方法。

    Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
    startActivityForResult(intent,1);      //      第二个参数是请求码

     

                                                      ii.              活动2构建一个仅传数据的Intent,然后调用setResult()方法,setResult专门用于向上一个活动返回数据,该方法两个参数:处理结果(RESULT_OK,RESULT_CANCELED)和带数据的Intent

    Intent intent = new Intent();
    intent.putExtra("data_return","Hello FirstActivity");
    setResult(RESULT_OK,intent);    //setResult专门用于向上一个活动返回数据,该方法两个参数:处理结果(RESULT_OK,RESULT_CANCELED)和带数据的Intent
    finish();

                                                    iii.              活动1中重写onActivityResult()方法,用该方法来得到返回的数据。该方法有三个参数:请求码、数据处理结果、携带返回数据的Intent

    请求码判断数据来源于哪个活动

    resultCode判断处理结果是否成功

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
       
    switch (requestCode){
           
    case 1:
               
    if(resultCode == RESULT_OK){
                    String returnData = data.getStringExtra(
    "data_return");
                   
    Log.d("FirstActivity",returnData);
               
    }
                
    break;
            default
    :
        }
    }


  • 相关阅读:
    python中不同文件中函数和类的调用
    python中使用queue实现约瑟夫环(约瑟夫问题)求解
    C语言中几个常用数学计算函数ceil(), floor(), round()的用法
    python中stack在实际中的简单应用之进制转换
    python中stack在实际中的简单应用之平衡符号
    python中两种栈实现方式的性能对比
    python实现stack并测试
    昨天的面试的一点思考
    从历代帝王的的创业经历看哪些人适合创业
    python chr()和ord()的含义和使用方法
  • 原文地址:https://www.cnblogs.com/pomodoro/p/11234047.html
Copyright © 2011-2022 走看看