0
点赞
收藏
分享

微信扫一扫

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




举报

相关推荐

0 条评论