Android 学习笔记一

Android笔记一

  • 在 Eclipse 中可以用快捷键 Ctrl+Shift+O 快速 import 所需的或 去掉无需的包
  • Ctrl+Shift+F 可以快速将代码规则化

Log的使用

  • 使用之前必须定义一个标志 TAG
    private String tag = "CodeView"; //CodeView 为一个标志,一般为Acvitity的名字
    //只要在想打印的地方写上该代码,就可以打印相应的东西
    Log.v(tag,"string"); //string为要打印的字符串

Android TTS 的使用

  • Android语言包调用
  • 代码如下
  //包含语音包
    import android.speech.tts.TextToSpeech; 
    import android.speech.tts.TextToSpeech.OnInitListener;

    TextToSpeech tts;
    //初始化
    tts = new TextToSpeech(this,new OnInitListener()
    {
        @Override
        public void onInit(int status) {
        //如果装载TTS引擎成功
        if(status == TextToSpeech.SUCCESS)
        {
            //设置使用美式英语朗读(虽然设置里有中文选项Locale.Chinese,但并不支持中文)
            int result = tts.setLanguage(Locale.US);
            //如果不支持设置的语言
            if(result != TextToSpeech.LANG_COUNTRY_AVAILABLE 
                    && result != TextToSpeech.LANG_AVAILABLE)
            {
                Toast.makeText(CodeView.this, "TTS暂时不支持这种语言朗读", 50000).show();
            }
        }
    }
    });
    speak.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View arg0) {
            //执行朗读
        tts.speak("班车即将到达 "+ str, TextToSpeech.QUEUE_ADD, null);
    }});

Android Toast 使用

  • 在屏幕提示内容
    import android.widget.Toast;
    //CodeView 为 Activity 的名字,String 为要显示的内容
    Toast.makeText(CodeView.this,"String",Toast.LENGTH_LONG).show();

Android Timer 使用

  • 定时器的使用

    new Timer().schedule(new TimerTask() { 
    @Override       
    public void run() { 
         Log.v(tag, "test"); 
    }}, 0,1000);  //注意 这里的 0 表示立即执行,1000表示1s循环执行 run()方法一次


 


 

Activity 之间的跳转

    Intent intent = new(FirstActivity.this,SecendActivity.class);
    startActivity(intent);

Activity 生命机制

  • Android 四个重要的组成元素:ActivityService, BroadcastReceiver  ContentProvider

Bundle 在 Activity 之间交换数据

  • Intent 提供了多个重载方法来携带额外的数据
  • putExtras(Bundle data) : intent中放入需要携带的数据
  • 上面方法中的 Bundle 就是一个简单的数据携带包,该 Bundle 对象包含了多个方法来存入数据
  • putXxx(String key,Xxx data) : 向 Bundle 放入 int long 等类型的数据
  • 为了取出Bundle 数据携带包里的数据,Bundle 提供了如下方法:

    1. getXxx(String key): 从 Bundle 取出 int,long 等各种类型的数据
    2. getSerializable(String key,Serializable data) :从 Bundle 取出一个可序列化的对象。
  • 发送数据代码

 

    int data
    //创建一个 Bundle 对象
    Bundle data = new Bundle();
    data.putSerializable("key",data)
    //创建一个Intent
    Intent intent = new Intent(FirstActivity.this,SecendActivity.class);
    intent.putExtras(data);


  • 接收数据代码

 

    Intent intent = getIntent();
    Bundle data = intent.getExtras();
    int get_data = (interge)data.getSerializable("key");

启动其他 Activity 并返回结果

  • Activity 还提供了一个starActivityForResult(Intent intent,int requestCode)方法来启动其他Activity,并获取制定启动的Activity返回的结果。
  • 为了获取被启动的Activity所返回的结果,当前Activity需要重写 onActivityResult(int requestCode,int resultCode,Intent intent),其中requestCode 代表请求码,而 resultCode 代表 Activity 返回的结果码
  • 请求的Activity的代码

 

    Intent intent = new Intent (FirstActivity.this,SecondActivity.class);
    startActivityForResult(intent,0);  //请求码为0

    //复写ActivityForResult 方法
    @Override
    public void onActivityResult(int requestCode,int resultCode,Intent intent)
    {    
        if(erquestCode == 0 && requestCode == 0)
        {
            //取出 Intent 中的Extras 数据
            Bundle data = intent.getExtras();
            //取出Bundle中的数据
            int get_data = data.getLong("key");
        }
    }


  • 被请求的Activity代码
 //获取启动该Activity之前的Activity对应的Intent
    Intent intent = getIntent();
    Bundle data = new Bundle();
    data.putString("key",value);  //valeu 为要返回的结果,data.putXxx 根据 value的类型而不同,Xxx 为类型
    intent.putExtras(data);
    //设置被请求的Activity的结果码,并设置结束之后退回的Activity
    SecendActivity.this.setResult(0,intent);
    SecendActivity.this.finish();

你可能感兴趣的:(Android 学习笔记一)