一点一点学java
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一点一点学java相关的知识,希望对你有一定的参考价值。
2017-09-08
写在前面
新的学年要开始做项目准备毕业了 是AR全新的领域 但是要在安卓手机上做 所以java和安卓就是必不可少的
要努力学习安卓呀
Activity
setContentView()方法来给当前的活动加载一个布局
Toast在程序中可以将一些短小的消息提供给用户,这些消息一会以后会自动消失,需要定义一个弹出Toast的触发点。通过静态方法makeText()创建一个Toast对象,然后调用show()makeText()参数,第一个是context,第二个是Toast显示的文本内容,第三个参数是Toast现实的时长
findViewById()获取到在布局文件中定义的元素,它返回的是一个view对象,因此我们需要向下转型成别的对象
setOnClickListener为按钮注册一个监听器,点击按钮时就会执行监听器中的onclick()方法
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.first_layout); Button button1 = (Button)findViewById(R.id.button_1); button1.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ Toast.makeText(FirstActivity.this,"你点了Button1",Toast.LENGTH_LONG).show(); } }); }
menu
在rec中建立menu文件夹,然后menu resource file
<item>添加菜单项
重写onCreateOptionsMenu(),通过getMenuInflater()方法能够得到MenuInflater对象,再调用它的Inflater()方法就可以给当前活动创建菜单
inflate()方法接收两个参数,第一个参数用于指定我们通过哪一个资源文件来创建菜单,第二个参数用于指定我们的菜单项添加到哪一个Menu对象中
public boolean onCreateOptionsMenu(Menu menu) { //return super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.main,menu); return true; }
定义菜单响应事件
在onOptionsItemselected()方法中,通过调用item.getItemId()来判断我们点击的是哪一个菜单项,然后给每个菜单项加入自己的逻辑处理
finish()能销毁当前的活动
Intent是android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。intent有显式和隐式
Intent(Context packageContext, Class<?> cls) ,第一个参数Context要求提供一个启动活动的上下文,第二个参数Class则是指定想要启动的目标活动,通过这个构造就可以构建粗Intent的意图
Activity类中提供了一个startActivity()方法,这个方法是专门用于启动活动的,它接收一个Intent参数
隐式Intent
不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent,并帮我们找出合适的活动去启动。
intent解析机制主要是通过查找已注册在AndroidManifest.xml中的所有IntentFilter及其中定义的Intent,最终找到匹配的Intent
在 AndroidManifest.xml
<activity android:name=".SecondActivity"> <intent-filter> <action android:name="com.example.rebeccafan.myapplication.ACTION_START"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
public void onClick(View v){ //Toast.makeText(FirstActivity.this,"你点了Button1",Toast.LENGTH_LONG).show(); //Intent intent = new Intent(FirstActivity.this,SecondActivity.class); Intent intent =new Intent("com.example.rebeccafan.myapplicaiton.ACTION_START"); startActivity(intent); }
使用隐式intent,我们不仅可以启动程序内的活动,还可以启动其他程序的活动
public void onClick(View v){ //Toast.makeText(FirstActivity.this,"你点了Button1",Toast.LENGTH_LONG).show(); //Intent intent = new Intent(FirstActivity.this,SecondActivity.class); //Intent intent =new Intent("com.example.rebeccafan.myapplicaiton.ACTION_START"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.pornhub.com")); startActivity(intent);
指定了Intent的action是Intent.ACTION_VIEW,这是一个Android系统内置的动作,其常量值为android.intent.action.VIEW
<activity android:name=".ThirdActivity"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="http"/> </intent-filter> </activity>
通过android:scheme 指定了数据的协议必须是http协议,这样ThirdActivity应该就和浏览器一样,能够响应一个打开网页的Intent
Intent还可以在启动活动的时候传递数据
putExtra()可以把我们想要传递的数据暂存在Intent中,启动了另一个活动后,只需要把这些数据从Intent中取出就可以
通过getIntent()方法获取到用于启动SecondActivity的Intent,然后调用getStringExtra()方法来获取传递的数据
Layout
andorid: id是给当前的元素定义一个唯一的标识符,之后可以在代码中对这个元素进行操作
在xml中定义一个id,@+id/id_name 引用一个id @id/id_name
andorid:layout_width指定了当前元素的宽度 match_parent 表示让当前元素和父元素一样
andorid:layout_height指定了当前元素的高度 wrap_content 表示当前元素刚好包含里面的内容
andorid:text指定了元素中显示的文字内容
以上是关于一点一点学java的主要内容,如果未能解决你的问题,请参考以下文章