*定义多个Activity
*定义一个类,继承Activity
*在该类当中,复写Activity当中的onCreate方法
*在AndroidManifest.xml文件当中注册该Activity
*启动一个Activity的方法
*生成一个意图对象(Intent)
*调用setClass方法设置所要启动的Activity
*调用startActivity方法启动Activity
*启动第二个Activity的代码
package com.thxy.s2_multiactivity;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button button;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
ButtonListner listner = new ButtonListner();
button.setOnClickListener(listner);
}
class ButtonListner implements OnClickListener{
public void onClick(View v) {
Intent intent = new Intent();
/*setClass函数的第一个参数是一个Context对象
*Context是一个类,Activity是Context类的子类,也就是说,所有的Activity对象,都可以
*向上转型为Context对象
setClass函数的第二个参数是一个Class对象,在当前情景下,应该传入需要启动的Activity类的class对象
*/
intent.setClass(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
*Activity的生命周期
onCreate() 在Activity对象被第一次创建时调用
onStrat() 当Activity变得可见时调用该函数
onResume() 当Activity开始准备与用户交互时调用该方法
onStop() 当前Activity变得不可见时调用该方法
onDestory() 当前Activity被销毁之前将会调用该方法
onRestart() 当一个Activity再次启动之前将会调用该方法
*Intent(意图)初步
*编写两个Activity页面A和B,实现从A到B的跳转,并带数据
*A页面代码(创建intent并添加数据):
private Button button;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, OtherActivity.class);
intent.putExtra("com.thxy.s2_intent.Age", 20);
intent.putExtra("com.thxy.s2_intent.Name", "张三");
startActivity(intent);
}
});
}
*B页面代码(得到intent和获取其中的数据):
public class OtherActivity extends Activity{
private TextView textView;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
Intent intent = getIntent();
int age = intent.getIntExtra("com.thxy.s2_intent.Age", 10);
String name = intent.getStringExtra("com.thxy.s2_intent.Name");
textView = (TextView) findViewById(R.id.textView);
textView.setText(name+":"+age+"");
}
}
*Post提交数据的步骤
*构造请求对象
*将需要传递给服务器端的数据放置在键值对对象当中
*将准备好的键值对放置在List当中
*生成代表请求体的对象
*将存有请求键值对的List对象放置在请求体对象当中
*将请求体对象放置在请求对象当中
*发送请求对象
//该线程使用POST方法向服务器发送请求
class PostThread extends Thread {
String name;
String pwd;
public PostThread(String name, String pwd) {
this.name = name;
this.pwd = pwd;
}
public void run() {
HttpClient httpClient = new DefaultHttpClient();
String url = "http://192.168.1.103:8080/s02e14.jsp";
//生成使用POST方法的请求对象
HttpPost httpPost = new HttpPost(url);
//NameValuePair对象代表了一个需要发往服务器的键值对
NameValuePair pair1 = new BasicNameValuePair("name", name);
NameValuePair pair2 = new BasicNameValuePair("password", pwd);
//将准备好的键值对对象放置在一个List当中
ArrayList<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(pair1);
pairs.add(pair2);
try {
//创建代表请求体的对象
HttpEntity requestEntity = new UrlEncodedFormEntity(pairs);
//将请求体放置在请求对象当中
httpPost.setEntity(requestEntity);
//执行请求对象
try {
HttpResponse response = httpClient.execute(httpPost);
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = response.getEntity();
BufferedReader reader = new BufferedReader(
new InputStreamReader(entity.getContent()));
String result = reader.readLine();
Log.d("HTTP", "POST:" + result);
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}