一点一点学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()能销毁当前的活动

Intentandroid程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。intent有显式和隐式

关于一篇将intent和intentfilter很好的文章

更好的一篇

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的主要内容,如果未能解决你的问题,请参考以下文章

一点一点学写Makefile - 编译时指定宏参数

一点一点学写Makefile-增加第三方库和头文件

一点一点学写Makefile-自动搜所当前目录下的所有源文件

java文件上传-原始的Servlet方式

PHP 代码规范(一点一点更新中...)

呈现模态视图控制器,使其tableview一点一点下移