andriod入门

——基于上学期的学习和期末总结

分层架构

应用程序层、应用程序框架层、系统运行库层、Linux核心层

函数库与运行时:Android包含一套被不同组件所使用的C/C++库的集合

DDMS:监视Android系统中的进程、堆栈信息,查看logcat日志,实现端口转发服务和屏幕截图功能,模拟电话呼叫和SMS短信,以及浏览Android模拟器文件系统等

连接真实Android设备:【设置】 -- 【应用程序】 -- 【开发】 -- 【USB调试

Android SDK 目录文件夹

intent---组件通信

对于不同的组件,Android系统提供了不同的Intent发送机制进行激活。

  • Intent对象可以传递给Context.startActivity()Activity.startActivityForResult()方法来启动Activity或者让已经存在的Activity去做其他任务。(Intent对象也可以作为Activity.setResult()方法的参数,将信息返回给调用startActivityForResult()方法的Activity)

  • Intent对象可以传递给Context.startService()方法来初始化Service或者发送新指令到正在运行的Service。类似的,Intent对象可以传递Context.bindService()方法来建立调用组件和目标Service之间的链接。它可以有选择的初始化没有运行的服务。

  • Intent对象可以传递给Context.sendBroadcast()Context.sendOrderedBroadcast()Context.sendStickyBroadcast()等广播方法,使其被发送给所有感兴趣的BroadcastReceiver。

1、创建并配置Activity

  • Activity一般是继承android.app包中的Activity类,在不同的应用场景下,也可以继承Activity的子类

  • 重写需要的回调方法。通常情况下,都需要重写onCreate()方法,并且在该方法中调用setContentView()方法设置要显示的视图

@Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_detail);
   }

2、启动Activity

1.显示启动

(1)需要创建Intent对象,可以使用下面的语法格式。

Intent intent = new Intent(Context packageContext, Class<?> cls)

(2)应用startActivity()方法来启动ActivitystartActivity()方法的语法格式如下:

public void startActivity (Intent intent)

2.隐式启动
  • 展示一个网页,就可以调用系统的浏览器来打开这个网页

 Intent intent = new Intent();               // 创建Intent对象
 intent.setAction(Intent.ACTION_VIEW);           // 为Intent设置动作
 intent.setData(Uri.parse("http://www.baidu.com"));  // 为Intent设置数据
 startActivity(intent);                  // 将Intent传递给Activity
Intent intent = new Intent(Intent.ACTION_VIEW,
  Uri.parse("http://www.baidu.com"));    // 创建Intent对象
 startActivity(intent);              // 将Intent传递给Activity

 

3、使用Bundle在Activity之间交换数据

  • Bundle是一个字符串值到各种Parcelable类型的映射,用于保存要携带的数据包。也可理解为Bundle是一个key-value(键-值)对的组合。我们可以根据其中的key来获取具体的内容(value)。

1、将数据存放在Bundle对象中

 Bundle bundle=new Bundle();     //创建并实例化一个Bundle对象
 bundle.putCharSequence("user", user);   //保存用户名
 bundle.putCharSequence("pwd", pwd); //保存密码
 //将Bundle对象添加到Intent对象中
 intent.putExtras(bundle);    
2、获取传递过来的字符串类型的用户名和密码。
 Intent intent=getIntent();      //获取Intent对象
 Bundle bundle=intent.getExtras();   //获取传递的数据包
 bundle.getString("user");       //获取输入的用户名
 bundle.getString("pwd");        //获取输入的密码

4、调用另一个Activity并返回结果

  • startActivityForResult (Intent intent, int requestCode)方法

 public void startActivityForResult (Intent intent, int requestCode)
  • setResult (int resultCode, Intent data)方法

 public final void setResult (int resultCode, Intent data)
  • onActivityResult(int requestCode, int resultCode, Intent data)方法

 protected void onActivityResult(int requestCode, int resultCode, Intent data)

Service应用

bindService()方法启动服务时,服务会自动与组件绑定

bindService(Intent service, ServiceConnection conn, int flags)

Intent service:用于指定要启动的Service

ServiceConnection conn:用于监听调用者与Service之间的连接状态

int flags(标志位):用于指定绑定时是否自动创建Service

当调用onUnbind()方法时,服务会被销毁

sharedPreferences

// 通过Activity的方式调用sharedPreference,MODE_PRIVATE默认方式能被所有app读取
 sharedPreferences = getPreferences(MODE_PRIVATE);
 // 加入K-V对
 editor = sharedPreferences.edit();
 editor.putString("name", "讯方通信技术有限公司");
 editor.commit();
 Toast.makeText(this, "写入成功!", Toast.LENGTH_SHORT).show();
自动完成文本框AutoCompleteTextView
android:completionThreshold指定用户至少输入几个字符才会显示提示,默认为2
android:ems设置输入字符的长度。当设置该属性后,控件显示的长度就为此长度,超出的部分将不显示
创建适配器
 // 创建一个ArrayAdapter适配器,显示列表项
 ArrayAdapter<String> adapter =new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,COUNTRIFS);
 // 自动完成文本框与适配器关联
 autoCompleteTextView.setAdapter(adapter);
 Button button = (Button) findViewById(R.id.button1);
 button.setOnClickListener(new OnClickListener() {/*...*/}
进度条ProgressBar -- 通过style属性为ProgressBar指定风格
XML属性说 明
android:max设置该进度条的最大值
android:progress设置该进度条的已完成进度值

ProgressBar的常用方法有以下两个:

  • SetProgress(int):设置进度的完成百分比。

  • IncrementProgressBy(int):设置进度条的进度增加或减少量。参数为整数增,为负数减。

拖动条SeekBar 
 // 添加拖动条修改监听器
 seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
 @Override
 public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
 result.setText("当前值:"+arg1);   //设置文本框显示当前值
 }
星级评分条RatingBar
XML属性说 明
android:isIndicator设置该星级评分条是否允许用户改变(true为不允许)
android:numStars设置该星级评分条总共有多少个星
android:rating设置该星级评分条默认的星级
android:stepSize设置每次最少需要改变多少星级,默认0.5个

getRating():用于获取等级,表示选中了几颗星。

getStepSize():用于获取每次最少要改变多少个星级。

getProgress():用于获取进度,获取到的进度值= getRating()*getStepSize()。

1、直接使用ListView组件创建ListView 
2、让Activity继承ListActivity实现列表 
 // 获取listView组件
 final ListView listView = (ListView) findViewById(R.id.listView1);
 // 为listView组件,设置header view
 listView.addHeaderView(line());// 采用指定的图像视图,绘制header view
 ​
 ​
 //将适配器与ListView关联
 ListView.addFooterview(line());
 //为ListView组件,设置footer view
 ListView.setOnItemClickListener(new OnItemClickIistener(){
 //为ListView组件,设置单击选择项时间监听器
 @Override
  public void onItemClick (AdaptView<?>parent, View arg1, int pos,long id) {/*..*/}

菜单文件路径:res目录下的menu文件夹

 //解析菜单文件
 MenuInflater inflater = getMenuInflater();
 inflater.inflate(R.menu.contextmenu, menu);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值