Mars安卓第二季

*定义多个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;
	@Override
	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{

		@Override
		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);
			
		}
	}
	@Override
	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;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		button = (Button) findViewById(R.id.button);
		
		button.setOnClickListener(new OnClickListener() {
			
			@Override
			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;
	@Override
	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;
		}

		@Override
		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();
			}
		}
	}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值