`

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();
	}
}


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








分享到:
评论

相关推荐

    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_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