学了几个礼拜的Android课,学到了很多内容,学会了很多知识,让我对Android有了一个初步的认识,刚开始学习了基本的界面设计,其中有着界面布局、控件、事件、消息通知等,从基础学起,上课跟着老师的思路,跟上老师的节奏,完成老师布置的复习、预习,课后问舍友不理解的问题等。目前涉及到的基本控件是TextView,EditText,Button,ImageView,CheckBox,RadioButton等,基本事件有触屏和键盘事件,包括onTouchEvent,View.OnKeyListener等。
一、Android基本控件
1.TextView控件
显示文本及格式控制(阴影,滚动,设置边框)
TextView继承自View类,TextView基本控件的功能是显示文本的内容,但不允许编辑

//控件id
android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx
//宽度与高度
android:layout_width="wrap_content"  //wrap_content或者match_parent
android:layout_height="wrap_content"  //wrap_content或者match_parent
//文本文字 
android:text="@string/hello_world" //两种方式,直接具体文本或者引用values下面的string.xml里面的元素
//字体大小
android:textSize="24sp"  //以sp为单位
//字体颜色
android:textColor="#0000FF"  //RGB颜色
//字体格式
android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal
//文本显示位置
android:gravity="center"  //来指定文字的对齐方式,可选值有 top、bottom、left、right、center 等
//是否只在一行内显示全部内容
android:singleLine="true"  //true或者false,默认为false

2.EditText控件
输入文本(输入类型,颜色,长度)
这是一个非常重要的组件,它是用户和android应用进行数据传输的窗户,EditText是TextView的子类,具有TextView的属性特点

在Activity中的简单用法:

public class MainActivity extends Activity {
    //声明一个EditText
    private EditText edittext;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //给当前的活动加载一个布局
        setContentView(R.layout.activity_main);
        //初始化edittext
        edittext=(EditText) findViewById(R.id.edit_text);
    }
...
...
    //在方法中调用给edittext赋值
    edittext.setText("success");
...
...
}

3.Button控件
按钮以及设置点击监听

我们需要在Activity中为Button的点击事件注册一个监听器,以下介绍两种方式来实现按钮监听事件,更多方法可以参考下Android的按钮单击事件及监听器的实现方式

  • 通过匿名内部类作为事件监听器类,这种方法适用于事件监听器只是临时使用一次,因为大部分时候,事件处理器都没有什么利用价值(可利用代码通常都被抽象成了业务逻辑方法),这是一种使用最广泛的方法:
public class MainActivity extends Activity {
    private EditText edittext;
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edittext=(EditText) findViewById(R.id.edit_text);
        button = (Button) findViewById(R.id.button);
        //为button按钮注册监听器,并通过匿名内部类实现
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
            //点击Button会改变edittext的文字为"点击了Button"
            edittext.setText("点击了Button");
            }
        }); 
    }
}
  • 使用实现接口的方式来进行注册,让Activity类实现了OnClickListener事件监听接口,从而可以在该Activity类中直接定义事件处理器方法:onClick(view v),当为某个组件添加该事件监听器对象时,直接使用this作为事件监听器对象即可:
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edittext=(EditText) findViewById(R.id.edit_text);
        button = (Button) findViewById(R.id.button);
        button2 = (Button) findViewById(R.id.button2);
        button.setOnClickListener(this);
        button2.setOnClickListener(this);
    }
//用switch区分是哪个id
    public void onClick(View v) {
        switch (v.getId()){
        case R.id.button:
            edittext.setText("点击了Button");
            break;
        case R.id.button2:
            edittext.setText("点击了Button2");
            break;
        }
    }
}

4.ImageView控件
控制图片显示的各种格式
与Button之间的最大区别在于ImageButton中没有text属性。ImageButton控件中设置按钮中显示的图片可以通过android:src属性来设置。也可以通过setImageResource(int)来设置

5.CheckBox控件
复选按钮及设置点击监听

6.RadioButton控件
单选按钮及设置点击监听
需要同RadioGroup控件一起使用可实现单选效果

RadioButton和CheckBox的区别:

  • 单个RadioButton在选中后,通过单击无法变为未选中的状态;
    单个CheckBox在选中后,通过单击可以变为未选中的状态;
  • 一组RadioButton,只能同时选中一个(单选);
    一组CheckBox,能同时选中多个(多选);
  • RadioButton在大部分UI框架中默认用圆形表示;
    CheckBox在大部分UI框架中默认用矩形表示;

二、Activity的基本应用
1.基本结构
Activity(活动)是一种可以包含用户界面的组件,主要用于与用户进行交互。一个应用程序可以包含零个或多个Activity。

2.如何创建Activity
创建工程时,可以自动创建一个Activity
可以通过工具向导创建一个Activity
可以通过手动方式创建一个Activity
继承自Activity类或AppCompatActivity类,重写onCreate方法

4.在AndroidManifest.xml文件注册Activity
所有Activity都要在AndroidManifest.xml文件中进行注册才能生效。
放到标签中,通过标签进行注册,包含以下内容:
android:name 指定Activity名称
android:label 指定标题栏的内容
通过标签,指定程序的主Activity

5.Activity的跳转

Intent intent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(intent);

6.Activity常见场景:从一个应用启动另一个应用

Intent loginIntent = new Intent();
ComponentName componentName = new ComponentName("com.dsw.pluginapp","com.dsw.pluginapp.MainActivity");
loginIntent.setComponent(componentName);
startActivity(loginIntent);