`
jianggege
  • 浏览: 98253 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

整理出来的一些Android基础知识

阅读更多

整理出来的一些Android基础知识:

==============
在application 节点配置首先启动的Activity 节点

<activity android:name=".HelloActivity" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>

 
=============
获取当前屏幕的宽和高

 WindowManager manager = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
  Display display = manager.getDefaultDisplay();
  Display display = manager.getDefaultDisplay();
  this.screen_width = display.getWidth();
  this.screen_height = display.getHeight();

 

=============
  win7 磨砂效果

Window window = dialog.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

 

=============

  设置屏幕默认为横屏

android:screenOrientation="landscape" 

   设置屏幕默认为竖屏

android:screenOrientation="portrait" 

 

=============
  去除窗体的标题栏

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

      
去掉任务栏

this.getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

        
这个方法必须放在以上两个方法之后

this.setContentView(layoutResID);

 

================
ContentProvider 使用表的形式来组织数据
各个程序都可以来访问这个数据
android中的ContentProvider 保存在android.provider中
每个ContentProvider 都有一个uri
提供的增删改查的函数方法:
主要意义在于提供在不同的程序之间实现数据共享
实现一个CongtentProvider的步骤
1、定义一个CONTENT_URI常量
2、定义一个类,继承ContenProvider
3、实现query 、insert、 update 、delete、getType 和onCreate方法
4、在AndroidManifest.xml 当中声明

================
Activity 之间的跳转
Activity01 中启动Activity02

Intent inetnt1 = new Intent(Activity01.this,Activity2.calss)
stratActivity(intent1);
startActivityForResult(intent1,REQUEST_CODE);

 

startActivityForResult() 这个方法启动intent,并且挡墙新的Activity 运行结束的时候,还必须执行原Activity 里面的回调函数onActivityResult().

================
关于权限问题

===============
指定layout

LayoutInflater factory = LayoutInflater.from(NotePad.this);

 
==================
响应手机返回按钮事件

@Override
public void onBackPressed() {
  AlertDialog.Builder builder = new AlertDialog.Builder(ManagerView.this);
  builder.setMessage("是否退出程序");
  builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which) {
    ManagerView.this.finish();
   }
  });
  builder.show();
  // super.onBackPressed();
}

 ================
响应MENU按钮创建菜单

@Override
public boolean onCreateOptionsMenu(Menu menu) {
  // MenuItem item_1 = menu.add(0, 0, 0, "1");
  // item_1.setOnMenuItemClickListener(new ItemClickListenerClass());
  MenuItem item_0 = menu.add(0, 0, 0, "EXIT");
  item_0.setOnMenuItemClickListener(new ItemClickListenerClass());
  MenuItem item_1 = menu.add(0, 1, 1, "About");
  item_1.setOnMenuItemClickListener(new ItemClickListenerClass());
  MenuItem item_2 = menu.add(0, 2, 2, "UPdate");
  item_1.setOnMenuItemClickListener(new ItemClickListenerClass());
  MenuItem item_3 = menu.add(0, 3, 3, "Connect US");
  item_1.setOnMenuItemClickListener(new ItemClickListenerClass());
  return super.onCreateOptionsMenu(menu);
}

 =================
上下文菜单
创建

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
   ContextMenuInfo menuInfo) {
  menu.setHeaderTitle("选项");
  menu.setHeaderIcon(R.drawable.menu_set);
  
  menu.add(0, 0, 0, "新建记事项");
  menu.add(0, 1, 1, "保存记事");
  menu.add(0, 2, 2, "清空当前");
  menu.add(0, 3, 3, "查看记事");
  
  super.onCreateContextMenu(menu, v, menuInfo);
}
/**
  * 上下文菜单的响应事件
  */
/*
  * (non-Javadoc)
  * 
  * @see android.app.Activity#onContextItemSelected(android.view.MenuItem)
  */
@Override
public boolean onContextItemSelected(MenuItem item) {
  AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
    .getMenuInfo();
  switch (item.getItemId()) {
  case 0:
   break;
  
}
  return super.onContextItemSelected(item);
}

 ==================
对listview 中我们可以调用Android中默认的布局模式
Android.R.layout.simple_list_item_1 每一项只有一个textview
Android.R.layout.simple_list_item_2  每一项有两个TextView
Android.R.layout.simple_list_item_single_choice  每一项有一个TextView  但是这个项可以被选择

=================
Dialog 类是继承的是 object
progressDialog 中不需要Builder 这个内部类来构造,可以直接调用构造函数


=================
设置显示字体为系统里面的字体

Android:textAppearance="?Android:attr/textApperanceMedium" 

 
====================

public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_item_icon_text, null);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.text);
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(DATA[position]);
holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);
return convertView;
}

static class ViewHolder {
TextView text;
ImageView icon;
}

 =====================
关于SQLite 数据库的操作
继承SQLiteOpenHelper类新建一个数据库

public class DBUtil extends SQLiteOpenHelper {

private static final String SQL_STRING = "create table test_sqlite(_id integer primary key autoincrement,username varchar(40),birthdate date)";

private static final String DB_NAME = "testsqlite.db";
private static final int DB_VERSION = 1;

/**
  * 
  * @param context 上下文环境
  * @param name 创建数据库的文件名
  * @param factory 游标工厂
  * @param version 数据库创建的版本
  */
public DBUtil(Context context, String name, CursorFactory factory,
   int version) {
  super(context, name, factory, version);
   
}

public DBUtil(Context context) {
  this(context, DB_NAME, null, DB_VERSION);
   
}

/**
  * 创建数据库函数,回调函数,在程序运行中只会调用一次
  */
@Override
public void onCreate(SQLiteDatabase db) {
  System.out.println("onCreate()............");
  db.execSQL(SQL_STRING);
  
}

/**
  * 更新数据库
  */
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
   
  db.execSQL("drop table if exists testsqlite");
  onCreate(db);
}

public void closeDB(SQLiteDatabase db){
  if(db != null){
   db.close();
  }
}

public void closeCursor(Cursor c){
  if(c != null){
   c.close();
  }
}
}

 

======================
对于SQLite 数据库的基本操作语句:
插入操作:
对数据库中插入一个USERVO 对象

public void insertUserVO(UserVO user){
  
  DBUtil util = new DBUtil(context);
  // 得到一个可以写的 数据库,执行这个方法后 数据库才真正创建
  SQLiteDatabase db = util.getWritableDatabase();
  //ContentValues  一个map类存放键值对,一个键值对 键表示数据库中的列名 
  ContentValues values = new ContentValues();
  values.put("username",user.getUsername());
  values.put("birthdate", ConvertDate.datetoString(user.getBirthdate()));
  
  db.insert("test_sqlite", null, values);
  
  
}

 查询操作:

public Cursor findAll(){
  DBUtil util = new DBUtil(context);
  SQLiteDatabase db = util.getReadableDatabase();
  
  //查询的列名的string 数组
  String[] colnames = new String[]{"_id","username","birthdate"};
  
  String selection = "userid = ? and username=?";
  String[] selectionArgs = new String[]{"1","saf"}; 
  String groupBy = "userid";
  String having = "userid <10";
  String orderBy = "userid asc"; 
  
  Cursor c = db.query("test_sqlite", colnames, null, null, null, null, null);
  while(c.moveToNext()){
   System.out.println(c.getColumnName(0)+"  "+c.getColumnName(1)+"  "+c.getColumnName(2));
   System.out.println(c.getInt(0)+"  "+c.getString(1)+"   "+c.getString(2));
  
  }

  return c;
  
}

 

//查询的一些列方法:
-----------
public Cursor query (boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) 
distinct: true 表示去掉重复的行
table :表名
colums :查询的列的string 数组
selection:表示查询的条件 包含关键字 where  类似 selection = “name=?”;
selectionArgs :表示 填充的是 ? 代表的值的一个string数组
limit 限制返回的记录条数
-----------

public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) 

 -----------

public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) 

 -----------

public Cursor rawQuery (String sql, String[] selectionArgs) 

-----------
//修改数据的方法

public int update (String table, ContentValues values, String whereClause, String[] whereArgs) 

 -----------
//删除数据

public int delete (String table, String whereClause, String[] whereArgs) 
0
0
分享到:
评论
1 楼 gdky005 2012-05-03  
相当不错!   

相关推荐

    android基础知识整理版

    在Android开发领域,基础知识是构建...总的来说,Android基础知识的学习涵盖了组件生命周期、组件交互、数据共享、UI设计和权限管理等多个方面。只有深入理解和熟练掌握这些知识,才能在Android开发道路上走得更远。

    Android核心基础整理版

    Android核心基础整理版 基础入门 初级Android开发 知识点

    总结整理的Android面试Java基础知识点面试资料精编汇总文档资料合集.zip

    总结整理的Android面试Java基础知识点面试资料精编汇总文档资料合集: Android面试 常见58题.docx Android常见原理性面试专题.docx Android面试常问基础知识点.docx BAT Android面试20题详解.docx Java基础面试题....

    Android 高级开发面试题以及答案 整理

    该资料涵盖了 Java 基础知识、Android 平台知识、数据存储、网络编程、多媒体处理、Android 架构设计等方面的知识点。 Java 基础知识是 Android 开发的基石,包括 JVM 的工作流程、运行时数据区、方法指令、类加载...

    自己整理的Android基础知识详解

    通过看视频整理的一份宝贵的笔记,很全的。

    Android小知识整理

    以下是一些根据多年经验整合的Android基础知识: 1. **Activity生命周期**:理解Activity的onCreate(), onStart(), onResume(), onPause(), onStop()和onDestroy()等方法的执行顺序至关重要,这有助于管理应用的...

    android知识点整理 android开发工程师必备资料文档

    以上介绍了Android开发中的基础知识点,包括项目目录结构、资源管理、UI组件、屏幕适配与响应性设计以及应用程序的基本模块构成。希望这些内容能够帮助Android开发工程师更好地理解和掌握Android开发的核心技术要点...

    android基础

    ### Android基础知识点概览 #### 1. Android简介 - **定义**: Android是一种基于Linux内核的开源操作系统,主要用于移动设备如智能手机和平板电脑。 - **用途分类**: - **应用开发**:针对Android平台的应用程序...

    android bluetooth框架知识整理

    - **Linux内核的蓝牙驱动程序**:这是蓝牙硬件与操作系统交互的基础,负责硬件控制和数据传输。 - **Linux内核的蓝牙协议层**:实现蓝牙协议栈,包括L2CAP(逻辑链路控制和适配协议)、SDP(服务发现协议)和RFCOMM...

    Android小知识整理(学习Android的好资料)

    在Android的世界里,开发者需要掌握一系列的关键知识点,才能在这一平台进行高效且创新的应用开发。..."Android小知识整理"这份资料应该包含了这些主题的详细讲解,对于初学者和进阶开发者都是很好的学习资源。

    Android核心知识.pdf

    这份"Android核心知识.pdf"文档深入探讨了Android开发中的关键概念,包括Java基础知识,这对于Android程序员来说是必不可少的。以下是对其中部分重点内容的详细解读: 1. **JVM (Java虚拟机)** - **JVM工作流程**...

    android 整理代码笔记

    在Android开发领域,掌握核心知识点是提升编程技能的关键。这篇笔记主要涵盖了多个Android开发的实践模块,包括数据存储、用户界面、网络通信等基础且重要的主题。以下是对这些主题的详细解析: 1. **Fuxi**: 可能...

    android linux基础知识.txt

    根据提供的文件信息,我们可以整理出以下关于Android Linux的基础知识点: ### 1. Android系统与Linux的关系 Android系统基于Linux内核构建,它继承了Linux操作系统的一些核心特性,并在此基础上进行了扩展,以...

    本人整理的android开发文档

    #### 二、Android开发基础知识 **2.1 开发环境搭建** - **Android Studio**:官方推荐的集成开发环境,内置了模拟器、编辑器、调试工具等,适合初学者和专业开发者。 - **JDK**:Java开发工具包,Android应用程序...

    Android开发基础教程整理版

    这个整理版的教程将带你深入理解Android开发的基础知识,助你成为一名合格的Android开发者。 1. **环境配置**:开始Android开发的第一步是安装Android Studio,这是Google官方提供的集成开发环境(IDE)。它包含了...

    android基础笔记

    Android基础笔记是对Android操作系统开发入门知识的系统整理。Android是一种基于Linux内核的开源移动设备操作系统,由Google主导开发并广泛应用于智能手机、平板电脑及智能电视等设备。这份笔记涵盖了Android开发的...

    Android最新版最全面试题+知识点整理

    在Android开发领域,...通过这份全面的试题和知识点整理,开发者可以系统地学习和复习Android开发的各个方面,提高自己的专业能力,为实际项目开发打下坚实基础。无论是初学者还是经验丰富的开发者,都可以从中受益。

Global site tag (gtag.js) - Google Analytics