android 总结

业余时间学学android,写点例子分享下,问题仍然多多。

ListView 是android开发中最常用的组件之一,它通过一个adapter来构建显示通常有三种adapter可以使用ArrayAdapter,SimpleAdapter,CursorAdapter。CursorAdapter主要正对数据库使用,下面通过例子介绍ArrayAdapter,SimpleAdapter的简单使用:

1:ArrayAdapter 它接受一个数组或者List作为参数来构建。

一下通过简单例子说明: 创建Test

android总结

继承ListActivity 这里我们传入一个string数组 public class ListTest extends ListActivity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

String[] sw = new String[100];

for (int i = 0; i < 100; i++) {

sw[i] = "listtest_" + i;

}

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,sw);//使用系统已经实现好的xml文件simple_list_item_1 setListAdapter(adapter);

}

}

运行如图:

从以上代码可以看不我们不需要加载我们自己的layout 而是用系统已经实现的layout很快速的实现了listview

第二种SimpleAdapter:

先看下我们例子的最终截图:

android总结

通过上图可以看出listview每行不仅仅是一个string 包括了很多项,图片,多项文字

我们通过构建list,并设置每项为一个map来实现:

android总结

代码:创建TestList类继承Activity super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayList<HashMap<String, Object>> users = new ArrayList<HashMap<String, Object>>();

for (int i = 0; i < 10; i++) {

HashMap<String, Object> user = new HashMap<String, Object>(); user.put("img", R.drawable.user);

user.put("username", "姓名(" + i+")");

user.put("age", (20 + i) + "");

users.add(user);

}

SimpleAdapter saImageItems = new SimpleAdapter(this,

users,// 数据来源

R.layout.user,//每一个user xml 相当ListView的一个组件 new String[] { "img", "username", "age" }, // 分别对应view 的id new int[] { R.id.img, R.id.name, R.id.age }); // 获取listview ((ListView) findViewById(R.id.users)).setAdapter(saImageItems); 下面是main.xml的内容: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextView android:text="用户列表" android:gravity="center"

android:layout_height="wrap_content"

android:layout_width="fill_parent" android:background="#DAA520" android:textColor="#000000">

</TextView>

<LinearLayout

android:layout_width="wrap_content"

android:layout_height="wrap_content">

<TextView android:text="姓名"

android:gravity="center" android:layout_width="160px"

android:layout_height="wrap_content" android:textStyle="bold" android:background="#7CFC00">

</TextView>

<TextView android:text="年龄"

android:layout_width="170px" android:gravity="center"

android:layout_height="wrap_content" android:textStyle="bold" android:background="#F0E68C">

</TextView>

</LinearLayout>

<ListView android:layout_width="wrap_content"

android:layout_height="wrap_content" android:id="@+id/users">

</ListView>

</LinearLayout>

之中listView前面的可以说是标题行,listview相当于用来显示数据的容器,里面每行是一个用户信息,而用户信息是样子呢?

看看use.xml

<?xml version="1.0" encoding="utf-8"?>

<TableLayout

android:layout_width="fill_parent"

xmlns:android="/apk/res/android"

android:layout_height="wrap_content"

> <TableRow > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/img"> </ImageView> <TextView android:layout_height="wrap_content" android:layout_width="150px" android:id="@+id/name"> </TextView> <TextView

android:layout_height="wrap_content"

android:layout_width="170px"

android:id="@+id/age">

</TextView>

</TableRow>

</TableLayout>

也就是说每行包含了一个img 和2个文字信息

这个文件以参数的形式通过adapter在listview中显示。

也就是:

SimpleAdapter saImageItems = new SimpleAdapter(this,

users,// 数据来源

R.layout.user,//每一个user xml 相当ListView的一个组件

new String[] { "img", "username", "age" },

// 分别对应view 的id

new int[] { R.id.img, R.id.name, R.id.age });

end 针对CursorAdapter希望通过数据库来试验下,下次也写个例子上来 希望有用 ,不对之处,欢迎拍砖!

ndroid开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的应用。其中也有许许多多的开发者提供了应用开源项 目,贡献出他们的智慧和创造力。学习开源代码是掌握技术的一个最佳方式。下面推荐几个应用开源项目,这些项目不仅提供了优秀的创意,也可以直接掌握 Android内核的接口使用:

1.Android团队提供的示例项目

如果不是从学习Android SDK中提供的那些样例代码开始,可能没有更好的方法来掌握在Android这个框架上开发。由Android的核心开发团队提供了15个优秀的示例项 目,包含了游戏、图像处理、时间显示、开始菜单快捷方式等。

地址:/p/apps-for-android/

2.Remote Droid

RemoteDroid是一个Android应用,能够让用户使用自己的无线网络使用无线键盘、触摸屏操作手机。这个项目为开发者提供了如网络连接、触 摸屏手指运动等很好的样例。

地址:/p/remotedroid/

3.TorProxy和Shadow

TorProxy应用实现了Android手机无线电电传通讯(TOR),和Shadow应用一起使用,可以使用手机匿名上网。从该项目源代码中,可以 掌握socket连接、管理cookie等方法。

地址:http://www.cl.cam.ac.uk/research/dtg/code/svn/android-tor/

http://www.cl.cam.ac.uk/research/dtg/android/tor/

4、 Android SMSPopup

SMSPopup可以截获短信内容显示在一个泡泡形状的窗口中。从这个项目中可以掌握到如何使用内置的短信SMS接口。

地址:/p/android-smspopup/

5、 Standup Timer

Standup Timer应用用于控制站立会议时间,类似秒表倒计时,可以提醒每个人的讲话时间已到,从而保证每个与会者使用时间一样。从该项目的代码中,可以学会如何 使用时间函数。另外,这个项目的代码是采用视图view、模型model严格分离的设计思路。

地址:http://github.com/jwood/standup-timer

6、 Foursquare

是Foursquare.com的一个客户端应用,该应用主要分为两个模块:API(com.joelapenna.foursquare)和界面前端 (com.joelapenna.foursquared)两部分。从该项目代码中,可以学会如何同步、多线程、HTTP连接等技术。

地址:/p/foursquared/

7、 Pedometer

Pedometer应用用于记录你每天走路步数的。尽管记录不一定精准,但是从这个项目中,可以学习几个不同的技术:加速器交互、语音更新、后台运行服 务等。

地址:/p/pedometer/

8、 OpenSudoku-android

OpenSudoku是一个简单的九宫格数独游戏。从代码中可以学习到如何在视图中显示表格数据,以及如何和一个网站交互等技术。

地址:/p/opensudoku-android/

9、 ConnectBot

ConnectBot是Android平台的一个客户端安全壳应用。从该项目代码中,可以学习到很多Android安全方面的内容,这些是你在开发应用 时经常需要考虑的安全问题。

地址:/p/connectbot/

10、 WordPress的Android应用

当然在最后不能不提Wordpress的Android应用了,这是Wordpress官方开发团队提供的一个项目。

从代码中可以学习到XMLRPC调 用(当然还有更多的优秀内容)。 地址:http://android./trunk/

 

第二篇:Andriod学习心得

首先,创建一个Android项目,并新建一个MainActivity类。

  接着,编写一个访问IIS服务器的类。

package ld.com.authorize;

import java.io.BufferedReader;
import java.io.InputStreamReader;

import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.DefaultHttpClient;

import android.util.Log;

public abstract class HttpHelper {

private final static String TAG = "HttpHelper";

public static String invoke() {
String result = null;
try {
final String url = "http://192.168.1.104:180/";

HttpPost httpPost = new HttpPost(url);
DefaultHttpClient httpClient = new DefaultHttpClient();

//基本身份验证
BasicCredentialsProvider bcp = new BasicCredentialsProvider();
String userName = "liudong";
String password = "123";
bcp.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(
userName, password));
httpClient.setCredentialsProvider(bcp);

HttpResponse httpResponse = httpClient.execute(httpPost);

StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(
httpResponse.getEntity().getContent()));
for (String s = reader.readLine(); s != null; s = reader.readLine()) {
builder.append(s);
}
result = builder.toString();
Log.d(TAG, "result is ( " + result + " )");
} catch (Exception e) {
Log.e(TAG, e.toString());
}
Log.d(TAG, "over");
return result;
}
}

  注意的是,我这里用户名和密码分别是:liudong和123。

  然后,修改layout文件:main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<Button android:text="身份码验证" android:id="@+id/btnPassword"
android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
</LinearLayout>

  最后,修改MainActivity。

package ld.com.authorize;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

private final String TAG = this.getClass().getSimpleName();

private Button btnPassword;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

btnPassword = (Button) this.findViewById(R.id.btnPassword);

setInvokeOnClick();
}

private void setInvokeOnClick() {
btnPassword.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
AsyncTask<Void, Void, String> task = new AsyncTask<Void, Void, String>() {

private ProgressDialog progressDialog;

@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
// super.onPostExecute(result);
progressDialog.cancel();
Toast.makeText(MainActivity.this, result,
Toast.LENGTH_SHORT).show();

Log.d(TAG, result);
}

@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog
.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setTitle("调用中,请稍后...");
progressDialog.show();
}

@Override
protected String doInBackground(Void... arg0) {
// TODO Auto-generated method stub
try {
return HttpHelper.invoke();
} catch (Exception e) {
return null;
}
}

};
task.execute();
}
});
}
}

  设置访问权限为:<uses-permission android:name="android.permission.INTERNET" />

  运行模拟器的效果如图2.1所示。

图2.1

  三、IIS部署

  首先、添加一个网站,如图3.1所示。

如图3.1

  接着,在进入计算机管理-->本地用户和组-->用户,新建一个用户,如图3.2所示。

图3.2

  然后,设置IIS的身份验证(图3.3所示)。

图3.3

  设置其身份验证模式为:基本验证或Window身份s验证(图3.4所示)。

图3.4

  最后,我们在浏览器中输入网址进行验证,验证结果见图3.5和图3.6。

图3.5

图3.6

  从图中我们可以发现,浏览该网页时需要用户名和密码。我们输入了正确的用户名和密码后就可以登录这个页面了。

  四,运行效果。

  见图4.1和图4.2所示。

图4.1

图4.2

相关推荐