`

android_常用API

阅读更多
打电话, 文件读取与写入 ,共享偏好 ,手机中的html页面操纵


启动Android内置的拨号程序------------打电话啦

btnDial.setOnClickListener(new Button.OnClickListener(){//为按钮添加点击事件的监听器
			@Override
			public void onClick(View v) {//重写onClick方法
				Intent myIntent = new Intent(Intent.ACTION_DIAL);//创建Intent对象
				Sample_3_5.this.startActivity(myIntent);//启动Android内置的拨号程序
			}        	
        });


----------------------------------------------------------------
文件读取与写入

FileOutputStream fout = openFileOutput(fileName, MODE_PRIVATE);//获得FileOutputStream对象

FileInputStream fin = openFileInput(fileName);//获得FileInputStream对象

openFileOutput()方法的第一参数用于指定文件名称,不能包含路径分隔符“/” ,如果文件不存在,Android 会自动创建它。创建的文件保存在/data/data/<package name>/files目录,如: /data/data/cn.itcast.action/files/itcast.txt
如果希望文件被其他应用读和写,可以传入: 
openFileOutput("itcast.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录

在程序中访问SDCard,你需要申请访问SDCard的权限。
在AndroidManifest.xml中加入访问SDCard的权限如下:
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
         File sdCardDir = Environment.getExternalStorageDirectory();//获取SDCard目录
         File saveFile = new File(sdCardDir, “itcast.txt”);
FileOutputStream outStream = new FileOutputStream(saveFile);
outStream.write("传智播客".getBytes());
outStream.close();
}



InputStream in = getResources().openRawResource(R.raw.test1);	//从Resources中raw中的文件获取输入流

InputStream in = getResources().getAssets().open(fileName);		//从Assets中的文件获取输入流

EncodingUtils.getString(buffer, ENCODING);	

-------

public class DatabaseHelper extends SQLiteOpenHelper {
    //类没有实例化,是不能用作父类构造器的参数,必须声明为静态
         private static final String name = "itcast"; //数据库名称
         private static final int version = 1; //数据库版本
         public DatabaseHelper(Context context) {
//第三个参数CursorFactory指定在执行查询时获得一个游标实例的工厂类,设置为null,代表使用系统默认的工厂类
                super(context, name, null, version);
         }
        @Override public void onCreate(SQLiteDatabase db) {
              db.execSQL("CREATE TABLE IF NOT EXISTS person (personid integer primary key autoincrement, name varchar(20), age INTEGER)");   
         }
        @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
               db.execSQL("DROP TABLE IF EXISTS person");
               onCreate(db);
         }
}
DatabaseHelper databaseHelper = new DatabaseHelper(HelloActivity.this);
		SQLiteDatabase db = databaseHelper.getWritableDatabase();
		db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"传智播客", 4});	
		db.close();  

db.beginTransaction();//开始事务
try {
    db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"传智播客", 4});
    db.execSQL("update person set name=? where personid=?", new Object[]{"传智", 1});
    db.setTransactionSuccessful();//调用此方法会在执行到endTransaction() 时提交当前事务,如果不调用此方法会回滚事务
} finally {
    db.endTransaction();//由事务的标志决定是提交事务,还是回滚事务
} 
db.close(); 

---------
Cursor cursor = db.rawQuery(“select * from person”, null);
while (cursor.moveToNext()) {
	int personid = cursor.getInt(0); //获取第一列的值,第一列的索引从0开始
	String name = cursor.getString(1);//获取第二列的值
	int age = cursor.getInt(2);//获取第三列的值
}
cursor.close();
db.close(); 

或者:
int nameIndex = cursor.getColumnIndex("name");	//获取name列的索引
		int levelIndex = cursor.getColumnIndex("level");	//获取level列的索引
		for(cursor.moveToFirst();!(cursor.isAfterLast());cursor.moveToNext()){	//遍历查询结果集,将数据提取出来
			result = result + cursor.getString(nameIndex)+"    ";
			result = result + cursor.getInt(levelIndex)+"     \n";
		}





----------------------------
共享偏好对象---相当于java中的properties ,就是键值对
 sp = getPreferences(MODE_PRIVATE);		//获得SharedPreferences对象
        String result = sp.getString(EDIT_TEXT_KEY, null);
        if(result != null){		//如果获取的值不为空
        	etPre.setText(result);	//EditText对象显示的内容设置为读取的数据
        }


SharedPreferences.Editor editor = sp.edit();	//获得SharedPreferences的Editor对象
		editor.putString(EDIT_TEXT_KEY, String.valueOf(etPre.getText()));	//修改数据
		editor.commit();			//必须调用该方法以提交修改


-------------------------------------------------------------------------------
手机中的html页面操纵
普通的带js的html页面
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<script type="text/javascript">
	function contactlist(jsons){
		var table = document.getElementById("contactTable");
		var arr = eval(jsons);
		for(var i=0;i<arr.length;i++){
			var jsonObj = arr[i];
			var tr = table.insertRow(table.rows.length);
			var td1 = tr.insertCell(0);
			var td2 = tr.insertCell(1);
			td2.align = "center";
			var td3 = tr.insertCell(2);
			
			td1.innerHTML = jsonObj.id;
			td2.innerHTML = jsonObj.name;
			td3.innerHTML = "<a href=\"javascript:webHandler.call('"+jsonObj.phone+"')\">"+jsonObj.phone+"</a>";
		}
	}
	
	function pageInit(){
		var content = "[{id:56,name:'老张',phone:'123456789'},{id:12,name:'老比',phone:'5556'}]";
		
		contactlist(content);
		
	}
</script>
<body onload="pageInit()">
<table width="100%" border="0" cellspacing="0" id="contactTable">
	<tr bgcolor="#EEF7FF" style="font-size:18px;font-weight:bold;">
		<td width="20%">编号</td>
		<td align="center">姓名</td>
		<td width="30%">电话</td>
	</tr>
</table>

</body>
</html>

main.xml中有专门的webView来弄xml
 <WebView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/webView" />

private Handler handler = new Handler();
webview = (WebView)this.findViewById(R.id.webView);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.getSettings().setSupportZoom(false);//设置缩放
        webview.getSettings().setAppCacheEnabled(false);
        webview.getSettings().setAllowFileAccess(true);
        webview.addJavascriptInterface(new JSHandler(this,handler), "webHandler");
        String url = "file:///android_asset/index.html";
        webview.loadUrl(url);


处理js的类
public class JSHandler {

	private Context context;
	private WebView webView;
	private Handler handler;
	
	public JSHandler(Context context,Handler handler){
		this.context = context;
		this.handler = handler;
		webView = (WebView)((Activity)context).findViewById(R.id.webView);
		
	}
	//在java中调用js的方法,并往js传递数据
	public void show(){
		handler.post(new Runnable() {
			@Override
			public void run() {
				webView.loadUrl("javascript:contactlist('"+query()+"')");
			}
		});
	}
	
	public void call(final String phone){
		handler.post(new Runnable() {
			@Override
			public void run() {
				Toast.makeText(context, "hhh", 0).show();
				context.startActivity(new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phone)));
			}
		});
		
	}
	
	public String query(){
		JSONObject jsonObject = new JSONObject();
		JSONObject jsonObject2 = new JSONObject();
		JSONArray arr = new JSONArray();
		try {
			jsonObject.put("id", 56);
			jsonObject.put("name", "老张");
			jsonObject.put("phone", "5556");
			
			jsonObject2.put("id", 89);
			jsonObject2.put("name", "老放");
			jsonObject2.put("phone", "5558");
			
			arr.put(jsonObject);
			arr.put(jsonObject2);
		} catch (JSONException e) {
		}
		return arr.toString();
	}
}


-------------------------------------------------------------
------------------------------------------------------------








分享到:
评论

相关推荐

    Android_linux_API预先定义的函数

    ### Android Linux API 预先定义的函数知识点详解 ...以上介绍的这些函数都是Android应用层开发中常用的重要API。熟练掌握这些函数的用法可以帮助开发者更好地控制应用程序的行为,提升用户体验。

    AMap_Android_API_Demo_V2.0.4(Location_API_V1.0.2).zip

    本文将深入探讨"AMap_Android_API_Demo_V2.0.4(Location_API_V1.0.2)"中的核心知识点,包括高德地图API的使用、定位服务的实现以及源码分析。 一、高德地图Android API介绍 高德地图Android API是高德地图为开发者...

    android_api_demo

    【Android_API_Demo】是一个专为Android初学者设计的实践项目,它包含了Android开发中常用API的各种示例代码,帮助开发者了解并掌握Android组件的使用方法。在这个项目中,你可以找到关于活动(Activity)、意图...

    Android_API.rar_andriod_andriod 开发_android

    这个名为"Android_API.rar_andriod_andriod 开发_android"的压缩包,显然包含了一份深入探讨Android API的资源——"Android_API.chm",这可能是详细文档或教程,旨在帮助开发者更好地理解和运用Android API进行应用...

    Android高级应用源码-AMap_Android_API_Demo_V2.0.4

    【Android高级应用源码-AMap_Android_API_Demo_V2.0.4】是一个针对Android平台的高德地图API的示例项目,主要用于展示如何在Android应用中集成和使用高德地图服务。这个源码库是开发者学习和实践地图功能的理想资源...

    AN_233_Java_D2xx_for_Android_API_User_Manual

    手册首先介绍了一些常用的缩略词和缩写,例如Android Support、Prerequisites等,为理解整个API环境作准备。 接着,文档详细介绍了D2xx库的软件包结构。包括了com.ftdi.j2xx包,其中还展示了类的继承层次结构,让...

    android_stduio_serial_jni_api

    在"android_stduio_serial_jni_api"这个主题中,我们将深入探讨如何在Android Studio中使用JNI来实现串口通信功能。串口通信是一种常用的数据传输方式,尤其在物联网(IoT)设备和嵌入式系统中广泛使用。 首先,了解...

    android_api_textview

    `TextView`是Android开发中最常用的控件之一,了解其API属性对于实现丰富的用户界面至关重要。通过以上介绍,我们可以看到`TextView`具有强大的灵活性和可配置性,可以根据不同的需求进行定制化设置。希望本文能帮助...

    Music_Player_Service.rar_ANDROID 播放_Service android_android serv

    - Android 6.0(API 23)及以上版本需要在运行时动态请求权限。 7. **异步处理**: - 音频加载、网络请求等耗时操作应放在子线程中,避免阻塞主线程,保证用户体验。 - 可以使用AsyncTask、Handler或RxJava等...

    android常用的API接口调用

    Android 常用的 API 接口调用 Android 操作系统提供了许多有用的 API 接口,开发者可以通过这些接口调用来实现各种功能。本文将对 Android 常用的 API 接口调用进行归类和详细介绍。 显示网页 要在 Android 应用...

    Android_API中文帮助文档

    Android_API中文帮助文档是开发者在进行Android应用开发时的重要参考资料,它详尽地阐述了Android应用程序接口(API)的各种功能和用法。这份文档通常包括类库、方法、接口、枚举、注解等各类编程元素的说明,帮助...

    AMap__API_Demo_V2.0.4(Location_API_V1.0.2).zip

    总之,AMap__API_Demo_V2.0.4和Location_API_V1.0.2是Android开发者进行地图应用开发的重要资源。通过深入研究和实践,开发者可以掌握高德地图API的各项功能,从而构建出功能强大、用户体验优秀的地图应用。

    adb_api.rar_ADB api

    ADB(Android Debug Bridge)是Android系统开发者常用的工具之一,它提供了一个命令行接口,用于连接、控制设备或模拟器,进行各种调试操作。在"adb_api.rar_ADB api"这个压缩包中,主要包含了`adb_api.cpp`这个源...

    Android_API中文文档

    11. `android:imeOptions`和`android:imeActionId`、`android:imeActionLabel`则与软键盘的右下角动作按钮相关,通常在EditText中更为常用,它们能定义完成、下一字段等操作。 除此之外,TextView还支持多行文本...

    Android_Grallery常用酷炫效果

    然而,`Gallery`在API 21(Android 5.0 Lollipop)之后已被弃用,取而代之的是更灵活的`RecyclerView`和`ViewPager`。尽管如此,我们仍然可以从`Gallery`中学习到如何实现横向滚动和触摸交互的原理。 `...

    android_javaemail

    `MimeMessage`是JavaMail API中最常用的邮件消息类,它可以处理多部分消息,包括文本、HTML、附件等。 4. **MimeMessage**: 创建邮件实例,设置发件人、收件人、主题和正文。例如: ```java MimeMessage message ...

    Android_calendar.rar_Android 小应用_android_android calendar_androi

    Android平台上的日历应用是一个常用且功能丰富的组件,对于开发者来说,理解并创建这样的小应用能深入掌握Android系统的核心功能。本教程将围绕"Android_calendar.rar"这个压缩包,介绍如何在Android平台上构建一个...

    android_draw.rar_android_android draw

    Android提供了丰富的API来支持开发者进行自定义绘图,使得我们可以创建出独具特色的UI元素。本资料主要围绕"android_draw.rar"展开,详细介绍了Android中的绘图基础知识及其常用方法。 一、Canvas与Paint 1. Canvas...

Global site tag (gtag.js) - Google Analytics