选择菜单,弹出子菜单,点击选项跳转到新Activity

SubMenu prog = menu.addSubMenu("启动程序");
    prog.setHeaderTitle("选择要启动的程序");
        MenuItem item = prog .add("设置");
        item.setIntent(new Intent(this,SetActivity.class));
        return super.onCreateOptionsMenu(menu);

直接弹出选项,点击选项跳转到新Activity

//        SubMenu prog = menu.addSubMenu("启动程序");
//        prog.setHeaderTitle("选择要启动的程序");
        MenuItem item = menu.add("设置");
        item.setIntent(new Intent(this,SetActivity.class));
        return super.onCreateOptionsMenu(menu);

不同Switch状态的toast显示

Switch wlan=(Switch)super.findViewById(R.id.switch2);

        /*因为Switch组件继承自CompoundButton,在代码中可以通过实现CompoundButton.OnCheckedChangeListener接口,并
        实现其内部类的onCheckedChanged来监听状态变化。*/
        wlan.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked)
                    Toast.makeText(getApplicationContext(), "开", Toast.LENGTH_SHORT).show();
                else
                    Toast.makeText(getApplicationContext(), "关", Toast.LENGTH_SHORT).show();
            }
        });

弹出菜单

public void tac()
    {
        AlertDialog.Builder jk = new AlertDialog.Builder(this);
        jk.setMessage("弹出");
        jk.setNegativeButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterfa ce, int i) {
                Toast.makeText(getApplicationContext(), "弹出菜单点击了确定", Toast.LENGTH_SHORT).show();
            }
        });
        jk.setPositiveButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(getApplicationContext(), "弹出菜单点击了取消", Toast.LENGTH_SHORT).show();
            }
        });
        jk.create();
        jk.show();

    }

添加列表项

ListView mylist = (ListView)super.findViewById(R.id.listView);

        BaseAdapter baseAdapter = new BaseAdapter() {
            @Override
            public int getCount() {
                return 40;
            }

            @Override
            public Object getItem(int i) {
                return null;
            }

            @Override
            public long getItemId(int i) {
                return i;
            }

            @Override
            public View getView(int i, View view, ViewGroup viewGroup) {
                LinearLayout linearLayout = new LinearLayout(TextActivity.this);
                linearLayout.setOrientation(LinearLayout.VERTICAL);

                ImageView imageView = new ImageView(TextActivity.this);
                imageView.setImageResource(R.mipmap.ic_launcher);

                TextView textView = new TextView(TextActivity.this);
                textView.setText("第"+(i+1)+"列表项");
                textView.setTextSize(20);
                textView.setTextColor(Color.BLUE);

                linearLayout.addView(imageView);
                linearLayout.addView(textView);

                return linearLayout;
            }
        };

        mylist.setAdapter(baseAdapter);

底部向上弹出提示

Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();

不在MENU中跳转Activity

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

隐藏ActionBar

if (Build.VERSION.SDK_INT >= 21) {
            View decorView = getWindow().getDecorView();
            int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
            decorView.setSystemUiVisibility(option);
            getWindow().setStatusBarColor(Color.TRANSPARENT);
        }
        ActionBar actionBar = getSupportActionBar();
        actionBar.hide();

限制字符显示的长度,并在字符后加省略号

文字过长显示省略号或者跑马灯效果

android:maxEms="6" //限制显示的字符长度

android:singleLine="true" //单行显示

android:ellipsize="end"//在结尾用省略号

TextView相关属性设置

android:maxLines    设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。  
android:minLines    设置文本的最小行数,与lines类似。  
android:linksClickable  设置链接是否点击连接,即使设置了autoLink。  
android:scrollHorizontally  设置文本超出TextView的宽度的情况下,是否出现横拉条。  
android:textSize    设置文字大小,推荐度量单位”sp”,如”15sp” 
android:textStyle   设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开  
android:typeface    设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]   
android:height  设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)  
android:maxHeight   设置文本区域的最大高度  
android:minHeight   设置文本区域的最小高度 
android:minHeight   设置文本区域的最小高度  
android:width   设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米),与layout_width的区别看这里。  
android:maxWidth    设置文本区域的最大宽度  
android:minWidth    设置文本区域的最小宽度

match_parent和wrap_parent

/match_parent/: match—->使等同于,parent—->父母,所以,可以从单词上去理解,它就是强制性的使它的大小等同于父控件,父控件多大,他就多大。
/wrap_content/: wrap—->包(着),content—->内容,单词意思上去理解,这个属性就是让这个属性包着内容,转译过来,就是使这个属性和内容的大小刚好。

include的作用

使用<include>可以在多个界面复用一个布局
官方文档说:如果想在 include  标签中使用 layout属性,那么必须得在include 中包含 android:layout_height 和 android:layout_width,否则其它layout 属性 不会生效!

LinearLayout属性

gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思。

android:layout_gravity 和 android:gravity 的区别

从名字上可以看到,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。

android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置。

比如说button:android:layout_gravity 表示按钮在界面上的位置。 android:gravity表示button上的字在button上的位置。

Spinner使用

android:entries="@array/citys"
citys是一个array,在values下的一个.xml文件中定义的
使用array,不是arrays,不是.xml文件的名,只是array而已

多个Spinner联动

ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, mItems);

第二个参数是Spinner未展开菜单时Spinner的默认样式,android.R.layout.simple_spinner_item是系统自带的内置布局。

sppro = (Spinner)super.findViewById(R.id.spinner);
        spcity = (Spinner)super.findViewById(R.id.spinner2);
        String[] proItems = getResources().getStringArray(R.array.pro);
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.support_simple_spinner_dropdown_item,proItems);
            //    = ArrayAdapter.createFromResource(DisplayActivity.this,R.array.pro,R.layout.support_simple_spinner_dropdown_item);
        arrayAdapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
        sppro.setAdapter(arrayAdapter);

        sppro.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                Spinner spinner = (Spinner)adapterView;
                String prostr = (String)spinner.getItemAtPosition(i);
                ArrayAdapter<CharSequence> cityadapter =
                        ArrayAdapter.createFromResource(DisplayActivity.this,R.array.shangdong,R.layout.support_simple_spinner_dropdown_item);
                if(prostr.equals("山东省"))
                {
                    cityadapter = ArrayAdapter.createFromResource(DisplayActivity.this,R.array.shangdong,R.layout.support_simple_spinner_dropdown_item);
                    Toast.makeText(getApplicationContext(), "选择了山东省", Toast.LENGTH_SHORT).show();
                }
                else if(prostr.equals("河北省"))
                {

                    Toast.makeText(getApplicationContext(), "选择了河北省", Toast.LENGTH_SHORT).show();
                }
                spcity.setAdapter(cityadapter);//重要的一步,不要忘了
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });

主题

<color name="colorPrimary">#3F51B5</color>      //ActionBar的颜色
    <color name="colorPrimaryDark">#303f9f</color>      //ActionBar上面状态栏的颜色
    <color name="colorAccent">#ff4081</color>

修改RadioGroup的纵横布局

android:orientation="horizontal"

弹出日期选择窗口

final TextView datepickedit = (TextView)super.findViewById(R.id.datetextview);
        //final EditText datepickedit = (EditText)super.findViewById(R.id.datepickedit);
        datepickedit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final Calendar calendardate = Calendar.getInstance();
                DatePickerDialog datePicker = new DatePickerDialog(DisplayActivity.this, new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker datePicker, int year, int month, int date) {
                        calendardate.set(year,month,date);
                        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");//转型
                        Toast.makeText(getApplicationContext(), format.format(calendardate.getTime()), Toast.LENGTH_LONG).show();
                        datepickedit.setText(format.format(calendardate.getTime()));
                    }
                },calendardate.get(Calendar.YEAR),calendardate.get(Calendar.MONTH),calendardate.get(Calendar.DAY_OF_MONTH));
                datePicker.show();
            }
        });

弹出时间选择窗口

TextView timetextview1 = (TextView)super.findViewById(R.id.timetextview1);
        TextView timetextview2 = (TextView)super.findViewById(R.id.timetextview2);
        timetextview1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final Calendar calendartime1 = Calendar.getInstance();
                TimePickerDialog timePickerDialog = new TimePickerDialog(DisplayActivity.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker timePicker, int i, int i1) {
                        calendartime1.set(Calendar.HOUR_OF_DAY,i);
                        calendartime1.set(Calendar.MINUTE,i1);
                        SimpleDateFormat format = new SimpleDateFormat("hh-mm");//转型
                        Toast.makeText(getApplicationContext(), format.format(calendartime1.getTime()), Toast.LENGTH_LONG).show();
                        datepickedit.setText(format.format(calendartime1.getTime()));
                    }
                },calendartime1.get(Calendar.HOUR_OF_DAY),calendartime1.get(Calendar.MINUTE),true);
                timePickerDialog.show();
            }
        });
        timetextview2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final Calendar calendartime1 = Calendar.getInstance();
                TimePickerDialog timePickerDialog = new TimePickerDialog(DisplayActivity.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker timePicker, int i, int i1) {
                        calendartime1.set(Calendar.HOUR_OF_DAY,i);
                        calendartime1.set(Calendar.MINUTE,i1);
                        SimpleDateFormat format = new SimpleDateFormat("hh-mm");//转型
                        Toast.makeText(getApplicationContext(), format.format(calendartime1.getTime()), Toast.LENGTH_LONG).show();
                        datepickedit.setText(format.format(calendartime1.getTime()));
                    }
                },calendartime1.get(Calendar.HOUR_OF_DAY),calendartime1.get(Calendar.MINUTE),true);
                timePickerDialog.show();
            }
        });

检查文本框是否为空

EditText nameedit = (EditText)DisplayActivity.super.findViewById(R.id.nameedit);
                String name = nameedit.getText().toString();
                if(TextUtils.isEmpty(nameedit.getText()))
                {
                    Snackbar.make(view, "姓名不能为空", Snackbar.LENGTH_LONG)
                            .setAction("Action", null).show();
                }