Android开发工程师文集-提示框,菜单,数据存储,组件篇

提示框,菜单,数据存储,组件篇

Toast

Toast.makeText(context, text, 时间).show();

setDuration();//设置时间
setGravity();//位置

获取:

添加toast.getView();
imageView添加到toast中,addView();

LayoutInflater inflater = LayoutInflater.from(this);
View toast_view=inflater.inflate(R.id.,null);
Toast.
Toast.setView(toast_view);

AlertDialog

AlertDialog.Builder

setTitle();
setIcon();
setView();
setItems();

setMultiChoiceItems(); 复选
setSingleChoiceItems(); 单选
setNeutralButton();

setPositiveButton();
setNegativeButton();
AlertDialog dialog = builder.create(); .show();

消失
dialog.dismiss();

Notification通知栏,如接收短信

属性
Notification
setTicker();//手机状态栏的提示
setWhen();//设置时间
setContentTitle();
setContentText();
setContentIntent();

Notification notification = builder.build();

OptionsMenu

onCreateOptionsMenu();
动态:menu.add();
监听:onOptionsItemSelected();
public boolean onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.main,menu);
    return true;
}

监听:onOptionsItemSelected

public boolean onOptionsItemSelected(MenuItem item){
    switch(item.getItemId()){
        case R.id..:
        ...
    }
}

ContextMenu上下文菜单

public boolean onCreateItemSelected(MenuItem item){

}

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){
    super.onCreateContextMenu(menu, v, menuIfo);
}

SubMenu 子菜单

protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public boolean onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
    //return super.onOptionsItemSelected(item);
}

xml

<menu ...>
 <item
  android:showAsAction="never"
  android:title="文件">
  <menu>
   <item
    android:id="@+id/.."
    android:showAsAction="never"
    android:title="打开"/>
</menu>
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);

数据存储方式

四种:

  1. SharedPreferences
  2. SQLite
  3. Content Provider
  4. File

SharedPreferences是一种比较轻型的数据存储,基于xml的键值对存储,存储一些简单的信息。

SharedPreferences只能获取数据不能存储和修改,但能通过Editor实现存储修改。

步骤:

  1. 获取SharedPreferences对象
  2. SharedPreferences.Editor
  3. Editor的putXXX的方法
  4. Editor.commit()
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
SharedPreferences sharedPreferences = getSharedPreferences("sharedPreferences", MODE_PRIVATE);
Editor editor = sharedPreferences.edit();
editor.putXXX();
editor.commit();

用户名和密码的存储

sharedPreferences = getSharedPreferences("UserInfo", MODE_PRIVATE);
Editor editor = sharedPreferences.editor();
登录
String name = etName.getText().toString().trim();
String pass = etPass.getText().toString().trim();

SQLite的形式,以单个文件的存储,存储2T内存,以B-Tree形式。

SQLite的数据类型,null,integer,real,text,blob。

  1. SQLiteDatabase
  2. SQLiteOpenHelper
SQLiteDatabase db = openOrCreateDatabase("table.db", MODE_PRIVATE, null);

SQLiteOpenHelper

DBOpenHelper helper = new DBOpenHelper(MainActivity.this, "user.db");
SQLiteDatabase db = helper.getWritableDatabase();
Cursor c = db.rawQuery("select * from user", null);
public DBOpenHelper(Context context, String name, CursorFactory factory, int version){
    super(context, name, factory, version);
}

public void onCreate(SQLiteDatabase db){

}

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){

}
File file = this.getFilesDir();
File file = this.getCacheDir();//重要文件就不要放在这里

MODE_PRIVATE

默认操作

MODE_APPEND

文件是否存在

public void WriteFiles(String content){
    try{
        FileOutputStream fileOutputStream = openFileOutput("super.txt", MODE_PRIVATE);
        fileOutputStream.write(content.getBytes());
        fileOutputStream.close();
    }catch(){

    }catch(){

    }
}

ContentProvider

<provider
 android:name=""
 android:authorities=""/>
public class MyContentProvider extends ContentProvider{
    public int delete(Uri uri,String selection, String[] selectionArgs){

    }
}

Uri 通用资源标志符

Broadcast广播

BroadcastReceiver 广播接收器

使用:需要Intent对象,sendBroadcast(),sendOrderBroadcast(),sendStickyBroadcast()。

Service

注册:

<service android:name=""/>
public void onClick(View v){
    switch(v.getId()){
        case R.id.:
        Intent intent = new Intent(MainActivity.this, MyService.class);
        startService(intent);
        break;
    }
}
public class MyService extends Service{
    public void onCreate(){
        super.onCreate();
    }
    public int onStartCommand(Intent intent,int flags,int startId){
        return super.onStartCommand(intent,flags,startId);
    }
    public void onDestroy(){
        super.onDestroy();
    }
    public IBinder onBind(Intent intent){
        return null;
    }
}

Bind

public void onCreate(){

}
public IBinder onBind(Intent intent){

}
public void unbindService(ServiceConnection conn){

}
ServiceConnection conn = new ServiceConnection(){
    public void onServiceDisconnected(ComponentName name){

    }
    public void onServiceConnected(ComponentName name, IBinder binder){

    }
}

系统服务

MountService,ClipboardService,getSystemService().

public Object getSystemService(String name){

}

POWER_SERVICE,PowerManger电源服务
ALARM_SERVICE,AlarmManager闹钟服务

LayoutInflater inflater = MainActivity.this.getSystemService(LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout. , null);
setContentView(view);

getSystemService

GestureDetector

MotionEvent,GestureDetector,onGestureListener.

GestureOverlayView

Android:eventsInterceptionEnabled
Android:fadeDuration
Android:fadeEnabled
Android:gestureColor
<android.gesture.GestureOverlayView
 android:id=""
 android:layout_width=""
 android:layout_height="">
 <ImageView
  android:id=""
  android:layout_width=""
  android:layout_height=""
</android.gesture.GestureOverlayView>  

定位:分享 Android&Java 知识点
完结!

原文地址:https://www.cnblogs.com/dashucoding/p/9281733.html

时间: 2024-08-29 08:27:20

Android开发工程师文集-提示框,菜单,数据存储,组件篇的相关文章

Android开发工程师文集-1 小时学会Widget小组件开发

前言 大家好,给大家带来Android开发工程师文集-1 小时学会Widget小组件开发的概述,希望你们喜欢 学会用Widget (小组件) Widget小组件很方便,很快捷,可以个性化,自己定制,相关功能,可以实时更新最新内容. Widget布局,Widget配置,AppWidgetProvider与Configuration Activity Android Widget xml布局类型:AppWidget Provider <appwidget-provider xmlns:android

Android开发工程师文集-1 小时学会SQLite

前言 大家好,给大家带来Android开发工程师文集-1 小时学会SQLite的概述,希望你们喜欢 内容 什么是Sqlite: 效率高,开源,小型,程序驱动,支持事务操作,无数据类型,可嵌入的关系型数据库 独立的,跨平台的,代码量少,简单易用 创建表语句 create table student(_id Integer primary key, name varchar(10), age Integer not null); 删除表 drop table student; 插入数据 Insert

Android开发工程师文集-1 小时学会各种Drawable

前言 大家好,给大家带来Android开发工程师文集-1 小时学会各种Drawable的概述,希望你们喜欢 Drawable介绍 Drawable为抽象类,drawable与view有区别的地方,主要是体现事件和交互性上面. view是面向用户的,是可见的控件,能给它添加点击事件.drawable则相反,不能面向,也不可见,也不能添加点击事件. drawable有好多子类,drawable为抽象类,所以有很多子类来继承它. 主要原理方法 draw() setBounds() BitmapDraw

Android开发(二十四)——数据存储SharePreference、SQLite、File、ContentProvider

Android提供以下四种存储方式: SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/data/程序包名”目录下.如果要实现数据共享,正确的方式是使用ContentProvider. 参考: http://www.cnblogs.com/rond/p/3553156.html http://blog.csdn.net/flowingflying/article/details/6671548%2

Android开发工程师应该知道的50个开发秘诀、技巧和资源分享

作者撰写本文的初衷,是为了罗列出Android Studio有用的提示.技巧.快捷方式和参考资源,将提高您的整体效率和操作性能. 显然,还有很多优化.快捷方式等,但作者为了保持这篇文章的简短,限制为50个,希望读者会喜欢这篇文章! InfoQ注:本文是以MacOS X操作Android Studio为例,与Windows / Linux不一致的地方已经标注,请读者注意这一点. 可视化 1.Android Logcat的材料颜色主题(Material Colors theme). 要更改Andro

Android开发工程师,新长征路上的14项技能

导读: 你曾渴望回到宋朝吗? 或者什么朝,反正就是男耕女织的古代. 哦,那时的首都在汴梁(开封),房价想必没有这么高,工作?无非就是给你把锄头,去,种地去.夕阳西下了,麦子垛后,你和翠姑搂抱在一起,那时的你,生活的简单而美好. 看看现在的你,一个刚入门的安卓开发工程师,没有信用卡,没有她,没有24小时热水的家.你想念你的锄头和翠姑(或麦垛),可你回不去了,你现在手中的安卓手机,冰冷如铁,你不知道如何在这4寸屏的小东西上打出一片天地. 你不用感到不知所措和困惑,技术就是你安身立命的根本,当下,你的

Android开发工程师,前行路上的14项技能

导读: 你是否曾渴望回到宋朝? 或者什么朝,反正就是男耕女织的古代. 哦,那时的首都在汴梁(开封),房价想必没有现在这么高,工作?无非就是给你把锄头,去,种地去.夕阳西下了,麦子垛后,你和翠姑搂抱在一起,那时的你,生活的简单而美好. 看看现在的你,一个刚入门的安卓开发工程师,没有信用卡,没有她,没有24小时热水的家.你想念你的锄头和翠姑(或麦垛),可你回不去了.你握在手中的安卓手机,冰冷如铁,你不知道如何在这4寸屏的小东西上创出一片天地. 你不用感到不知所措和困惑,技术就是你安身立命的根本,当下

帮朋友急招PHP、Android开发工程师 西安 工资8k-12k

PHP高级工程师岗位要求: 1. 有两年以上PHP开发经验, 2. 精通PHP+MySQL程序设计及开发,拥有良好的代码习惯,要求结构清晰,命名规范,逻辑性强,代码冗余率低. 3. 熟悉面向对象的软件设计方法,对面向对象的设计模式有较深的理解并能熟练应用.4. 熟悉常用框架thinkphp或CI或YII其中一种.5. 熟悉webAndroid开发工程师前端HTML[XHTML).JQuery等JS框架.6. 逻辑性强,思维清晰,学习能力强,能够快速的学习新的技能.7. 有高流量网站开发架构经验,

CSS基础教程——纯CSS开发的气泡式提示框

本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:CSS基础教程 —— 纯CSS开发的气泡式提示框 作为前端开发人员,我们都熟悉使用CSS来生成页面上丰富的样式,对于边框border属性来说,也是我们最熟悉不过的CSS属性,今天我们这里将介绍如何使用纯CSS来生成一个气泡式样的提示框,希望大家喜欢! 在这篇文章中我们将使用:after伪标签来生成提示框的指示箭头. 首先我们定义提示框相关属性,我们添加了box阴影和文字阴影效果,这样让提示框更加漂亮: /* bubble */.tip