android studio 一定要用快捷键,IDE 设置很重要
https://download.csdn.net/download/sunjie718/11146157 里有设置的配置 《AndroidStudio config 配置设置备份3.2 版本 20190426》
https://download.csdn.net/download/sunjie718/11146157
快捷键 主要用来提示和操作,感觉都快脱离鼠标了
ALT + ENTER 最有用的 提示功能 可以直接生成很多代码
CTRL + B 代码定义查看 配合使用 ALT + Left Right 代码查看 返回……
CTRL +- 代码折叠 展开
CTRL + ALT + F 生成全局变量
FDVC 对应ID生成控件对象
CTRL + W 脱离鼠标利器 扩展选中
CTRL + SHIFT + / 注释
CTRL + ALT + T CTRL + J 插入预定义代码段
CTRL + ALT + H 查看调用
F7 F8 Shift +F8 调试
AndroidStudio3.2\config
extends 继承:类X 通过extend 类Y来添加功能,或者添加变量,或者添加方法,或者覆盖类Y的方法。一个接口extends另外一个接口来添加方法。
与implements的区别:
implements 实现父类,子类不可以覆盖父类的方法和变量。即使子类定义与父类相同的变量或者函数,也会被父类取代掉。
extends, 可以实现父类,也可以调用父类初始化 this.parent()。而且会覆盖父类定义的变量或者函数。
这样的好处是:架构师定义好接口,让工程师实现就可以了。整个项目开发效率和开发成本大大降低。
这两种实现的具体使用,是要看项目的实际情况,需要实现,不可以修改implements,只定义接口需要
具体实现,或者可以被修改扩展性好,用extends。
package com.example.sujie.helloworld;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
/*public class HelloMainActivity extends AppCompatActivity implements View.OnClickListener================================3333333333333333=============================*/
public class HelloMainActivity extends AppCompatActivity implements View.OnClickListener
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello_main);
System.out.println("hellowo");
//String strHello = .getText().toString().trim();
//Toast.makeText(this,"helloworld",Toast.LENGTH_SHORT).show();
Button btnButtonClick = this.<Button>findViewById(R.id.btnClickbutton);
/* btnButtonClick.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
*//* Toast.makeText(this, "1", Toast.LENGTH_SHORT).show();
Toast.makeText(this, "3", Toast.LENGTH_SHORT).show();
Toast.makeText(this, "5", Toast.LENGTH_SHORT).show();*//*
System.out.println("hello name the inner class");
}
});==============================================================================================================1111111111111111=========最多====================*/
/* btnButtonClick.setOnClickListener(new myclickListener());======================================================222222222222222==============================*/
/*btnButtonClick.setOnClickListener(this);=======================================================================3333333333333333=============================*/
btnButtonClick.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
}
/* class myclickListener implements View.OnClickListener
{
@Override
public void onClick(View v)
{
Toast.makeText(HelloMainActivity.this, "helloword", Toast.LENGTH_SHORT).show();
}
}==================================================================================================================2222222222222222222222===============================*/
/* @Override
public void onClick(View v)
{
}======================================================================================================================3333333333333333=== 最多==========================*/
/* public void myclicklistener(View view)===========================================================================4444444444444444444444 xml 指定 ===============================
{
System.out.println("hello");
}*/
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下开始打电话
文本控件: TextView EditText
TextView直接继承View,作用就是在界面上显示文本(类似于Swing中的JLabel),同时它还是EditText、Button两个UI组件类的父类。
EditText和TextView非常相似,它与TextView共用了绝大总分XML属性和文法,
二者最大区别在于:EditText可以接受用户输入。
按钮控件: Button ImageButton
状态开关按钮: ToggleButton
单选与复选按钮: CheckBox RadioButton
图片控件: ImageView
时钟控件: AnalogClock DigitalClock
日期与时间选择控件: DatePicker TimePicker
相对布局 – RelativeLayout
---相对其他控件进行布局,默认相对父控件。
使控件居中的两种方法:
1.通过gravity,使当前根布局下的所有孩子控件相对于当前的布局居中显示。
android:gravity="center_horizontal"
2.通过layout_gravity,当前控件相对于父控件显示的位置
<TextView
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/textView" />
ListView以列表的形式展示具体内容
<ListView
android:id="@+id/lv"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
线性布局 – LinearLayout
---水平或垂直的顺序排列布局
表格布局 – TableLayout
---采用行、列的形式来管理控件,通过添加TableRow、
其他组件来控制表格的行数和列数
每向TableLayout中添加一个TableRow就代表一行
每向TableRow中添加一个一个子组件就表示一列。
网格布局 – GridLayout
---与TableLayout类似,把容器分为rows × columns个网格,每个网格可以放置一个控件。
帧布局 – FrameLayout
---为每个加入其中的控件创建一个空白的区域(称为一帧),
每个子控件占据一帧,这些帧会根据gravity属性执行自动对齐
后面控件将会覆盖或重叠在前面的控件上。
绝对布局 – AbsoluteLayout
---采用绝对坐标进行布局定位。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
权限分组
Permission Group Permissions CALENDAR • READ_CALENDAR • WRITE_CALENDAR CAMERA • CAMERA CONTACTS • READ_CONTACTS • WRITE_CONTACTS • GET_ACCOUNTS LOCATION • ACCESS_FINE_LOCATION • ACCESS_COARSE_LOCATION MICROPHONE • RECORD_AUDIO PHONE • READ_PHONE_STATE • CALL_PHONE • READ_CALL_LOG • WRITE_CALL_LOG • ADD_VOICEMAIL • USE_SIP • PROCESS_OUTGOING_CALLS SENSORS • BODY_SENSORS SMS • SEND_SMS • RECEIVE_SMS • READ_SMS • RECEIVE_WAP_PUSH • RECEIVE_MMS STORAGE • READ_EXTERNAL_STORAGE • WRITE_EXTERNAL_STORAGE