一, 配置开发环境
www.android.com 下载ADT工具包和SDK
在eclipse中安装插件,下载各个版本的安卓包
二, 建立android project后,首先对res/layout目录下的main.xml进行配置,设置布局
一般汉字放在res/values/strings.xml文件中,便于国际化
图像资源放在res/drawable-hdpi/目录下
配置这些文件保存后悔在gen包里自动生成一个R类,用于存放各种资源的ID
获取资源的id的方法有R.XX.XX;
在main.xml文件中获取资源ID为android:text="@string/buttonread"
设置资源ID方法为android:id=”@+id/filename”
在第一个布局中要绑定URI
三.junit测试要配置AndroidManifest.xml文件
在</activity/>后添加<uses-library android:name="android.test.runner"/>
在</application>后添加
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.itheima.test"
android:label="Tests for MyApp"/>
测试的类要继承AndroidTestCase
输出日志最好用Log.i(TAG, "www.itheima.com");
四. 操作文件
往SD卡中读写数据需要出示的权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
package com.itheima.service;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import android.content.Context;
public class FileService {
private Context context;
public FileService(Context context) {
this.context = context;
}
public void save(String filename, String filecontent) throws IOException {
FileOutputStream out = context.openFileOutput(filename, Context.MODE_PRIVATE);
out.write(filecontent.getBytes());
out.close();
}
//读取方法
public String read(String filename) throws IOException{
FileInputStream in = context.openFileInput(filename);
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int len = 0;
while((len = in.read(buf)) != -1){
out.write(buf, 0, len);
}
byte[] data = out.toByteArray();
return new String(data);
}
}
package com.itheima.files;
import java.io.IOException;
import com.itheima.service.FileService;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) this.findViewById(R.id.button);
Button buttonread = (Button) this.findViewById(R.id.buttonread);
button.setOnClickListener(new ButtonClickListener());
buttonread.setOnClickListener(new ButtonreadClickListener());
}
private final class ButtonClickListener implements View.OnClickListener{
public void onClick(View v) {
EditText filenameText = (EditText) findViewById(R.id.filename);
EditText filecontentText = (EditText) findViewById(R.id.filecontent);
String filename = filenameText.getText().toString();
String filecontent = filecontentText.getText().toString();
FileService service = new FileService(getApplicationContext());
try {
if(filename==null || filename.trim().equals("")){
Toast.makeText(getApplicationContext(), R.string.kong, 1).show();
}
else{
service.save(filename,filecontent);
Toast.makeText(getApplicationContext(), R.string.success, 1).show();
}
} catch (IOException e) {
Toast.makeText(getApplicationContext(), R.string.fail, 1).show();
}
}
}
private final class ButtonreadClickListener implements View.OnClickListener{
public void onClick(View v) {
EditText filenameText = (EditText) findViewById(R.id.filename);
EditText filecontentText = (EditText) findViewById(R.id.filecontent);
String filename = filenameText.getText().toString();
//String filecontent = filecontentText.getText().toString();
FileService service = new FileService(getApplicationContext());
try {
if(filename==null || filename.trim().equals("")){
Toast.makeText(getApplicationContext(), R.string.kong, 1).show();
}
else{
String filecontext = service.read(filename);
filecontentText.setText(filecontext);
Toast.makeText(getApplicationContext(), R.string.readsuccess, 1).show();
}
} catch (IOException e) {
Toast.makeText(getApplicationContext(), R.string.readfail, 1).show();
}
}
}
}
五. 拨号功能和短信功能,需要向用户出示权限
在AndroidManifest.xml中添加
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
package com.itheima.sms;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.gsm.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class SmsActivity extends Activity {
private EditText numberText;
private EditText contentText;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
numberText = (EditText) this.findViewById(R.id.number);
contentText = (EditText) this.findViewById(R.id.message);
Button button = (Button) this.findViewById(R.id.button);
button.setOnClickListener(new ButtonClickListener());
}
private final class ButtonClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
String number = numberText.getText().toString();
String content = contentText.getText().toString();
SmsManager manager = SmsManager.getDefault();
ArrayList<String> texts = manager.divideMessage(content);
for(String text:texts){
manager.sendTextMessage(number, null, text, null, null);
}
Toast.makeText(SmsActivity.this, R.string.success, Toast.LENGTH_LONG).show();
}
}
}