第二天学习Android开发,目标是参加谷歌Android大赛,争取拿个奖回来,不过奖励是小,积累开发经验是大,也好在找工作的日子里找一个好工作~~
今天学习内容:helloworld 主要涉及内容是 一个Activity是一个窗口的感觉,每次新建一个Activity都,然后在xml中AndroidManifest.xml里面注册一下。
Android的资源都在Res里记录这,例如目录values里面 的string,可以定义程序中使用的所有字符串,在layout中,则定义了所有的UI,实现了MVC的涉及模式
而引用这些资源要使用R类为 桥梁来访问这些资源,例如setContentView(R.layout.main);
如果要使用layout中定义的资源,例如一个button,我们在UI编辑窗口可以编辑这个UI部件的ID,然后在主程序中,通过ID来引用这个部件
例如我们在main layout中定义一个button,编辑它的id是 button1,这个时候,button1在这个id,在R这个类中就自动生成了一个成员,名字和button1是一样的,我们可以引用这个button1来引用这个资源。
代码如下:Button button = (Button)findViewById(R.id.button2);
然后就可以对button进行逻辑编辑,例如增加相应函数:
button.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v)
{
/* 新建一个Intent对象 */
Intent intent = new Intent();
/* 指定intent要启动的类 */
intent.setClass(Activity01.this, Activity02.class);
/* 启动一个新的Activity */
startActivity(intent);
/* 关闭当前的Activity */
Activity01.this.finish();
}
});
这部分代码就是调用button,来添加click响应函数的
里面的Intent的含义是一个用来调用从一个activity切换到另一个activity用的。实现类似界面切换这种功能
例子3给的例子是访问通讯录,通讯录的访问方式随着版本的不同发生了一些变化,实践中,NUMBER字段已经没有了,下面的代码可以获得电话号码和用户
ContentResolver cr = getContentResolver();
//取得电话本中开始一项的光标
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
//向下移动一下光标
while(cursor.moveToNext())
{
//取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
String contact = cursor.getString(nameFieldColumnIndex);
String contactId = cursor.getString(cursor.getColumnIndex(PhoneLookup._ID));
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId,null,null);
while(phone.moveToNext())
{
int phoneFieldcolumnIndex = phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
String phoneNumber = phone.getString(phoneFieldcolumnIndex);
string += contact +":" + phoneNumber + "\n";
}
phone.close();
//string += (contact+":"+number+"\n");
}
cursor.close();
//设置TextView显示的内容
tv.setText(string);