Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2177571
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类: Java

2011-04-06 15:31:23

一、本周计划任务

本周继续延续上一周的内容,在

 这个网址中练 习相关实验。

二、实验内容

1. 建立一个新工程,完成后结构树如图1所示。

新建工程的结构树

2. 编写修改main.xml文件,如图2.

2 main.xml文件

修改相关代码后,到graphic layout界面,会出现相应的结果。如图3

输出界面

3. 这个实验是主要是练习编辑XML文件,目录能够被XML文件定义。选择该工程,右键点击new-others-android-Android XML file。如图4。按照图5设置完成后,点击finish,会出现如图6所示界面。

新建XML文件

5 XML文件相关设置

6 menu.xml

点击ADD,在出现的选项卡里选择“Item”,如下图。

添加Item元素

下面是item中包含的值,这定义了菜单的入口。每个工程只能有一个入口。

定义menu.xml信息

4. 下面编辑preferences.java文件

OnCreateOptionsMenu:用于创建menu

onOptionsItemSelected:一般在展示Toast时是硬代码的,之后会调用preferences 设置。如果想不用或者隐藏menu items,可以使用onPreparO

                    ptionsMenu,每次调用menu时,这个命令就会被调用一次。

9 preferences.java代码

5. 下面运行模拟器。如图10.

10 模拟器运行

6. Preferences用于保存应用所需的数据,他被当作关键值保存,intents允许从其他activity中打开。Preferences 的值同样也能被当做XML资源存储。下面新建一个preferences.xml的文件。如图11.

11 新建preferences.xml

添加一个种类category、两个preferencesEditTextPreferences,分别叫做"User" "Password". 如图12

12 添加PreferenceCategory

13 设置PreferenceCategory

14 添加EditTextPreference

14 为第一个EditTextPreference命名

15 为第一个EditTextPreference命名

可以用一个Activity包含上面的preferences.xml,从PreferenceActivity延伸。这个activity可以装载一个preferences,通过 addPreferencesFromResource()定义资源。创建一个名为“hellopreferences”的类来装载preferences.xml。如图16.

16 创建hellopreferces

17 hellopreferces中的代码

要想这个类别被android里可用,需要在AndroidManifest.xml里注册。双击AndroidMannifest.xml,进入application选项卡,如图18所示。

18 注册hellopreferces

19 添加一个activity

20 为创建的新类命名

7. 修改preferences.java中的代码。如下:

package android.preferences;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.widget.Toast;

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

import android.content.Intent;

import android.preference.PreferenceManager;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class preferences 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) findViewById(R.id.Button01);

// Initialize preferences

final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

button.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

String username = preferences.getString("username", "n/a");

String password = preferences.getString("password", "n/a");

Toast.makeText(

preferences.this,

"You entered user: " + username + " and password: "

+ password, Toast.LENGTH_LONG).show();

}

});

Button buttonChangePreferences = (Button) findViewById(R.id.Button02);

buttonChangePreferences.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

Editor edit = preferences.edit();

String username = preferences.getString("username", "n/a");

// We will just revert the current user name and save again

StringBuffer buffer = new StringBuffer();

for (int i = username.length() - 1; i >= 0; i--) {

buffer.append(username.charAt(i));

}

edit.putString("username", buffer.toString());

edit.commit();

// A toast is a view containing a quick little message for the

// user. We give a little feedback

Toast.makeText(preferences.this,

"Reverted string sequence of user name.",

Toast.LENGTH_LONG).show();

}

});

}

    

    public boolean onCreateOptionsMenu(Menu menu){

         MenuInflater inflactor = getMenuInflater();

         inflactor.inflate(R.menu.menu,menu);

         return true;

    }

    public boolean onOptionsItemSelectd(MenuItem item){

     switch (item.getItemId()) {

// We have only one menu option

case R.id.preferences:

// Launch Preference activity

Intent i = new Intent(preferences.this, preferences.class);

startActivity(i);

// Some feedback to the user

Toast.makeText(preferences.this,

"Here you can maintain your user credentials.",

Toast.LENGTH_LONG).show();

break;

}

return true;

    }

}

遇到问题:查看代码时感觉还是比较陌生,不明白里面的函数的意义和逻辑。在运行时也并没有出现正确的结果。也许是在设置类和xml文件时出错。

三、下周计划

由于本周在代码中遇到了很大的问题,因此下周准备用一周的时间将android中如何使用资源如何调用资源部分弄清楚。下周还是回到书中,进行较为有调理地学习。

阅读(1092) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~