Android笔记
-
手机页面的转换——setContentView
功能描述:默认使用main布局,里面有一个Button用来显示mylayout布局,在mylayout中有一个Button用来显示的内容;
代码实现:
publicvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1= (Button)findViewById(R.id.btn1);
btn1.setOnClickListener(newView.OnClickListener() {
@Override
publicvoidonClick(View v) {
//TODOAuto-generated method stub
jumpToLayout02();
}
});
}
publicvoidjumpToLayout02(){
setContentView(R.layout.mylayout);
btn2= (Button)findViewById(R.id.btn2);
btn2.setOnClickListener(newView.OnClickListener() {
@Override
publicvoidonClick(View v) {
//TODOAuto-generated method stub
jumpToLayout01();
}
});
};
publicvoidjumpToLayout01(){
setContentView(R.layout.main);
btn3= (Button)findViewById(R.id.btn1);
btn3.setOnClickListener(newView.OnClickListener() {
@Override
publicvoidonClick(View v) {
//TODOAuto-generated method stub
jumpToLayout02();
}
});
}
注意:在jumpToLayout01()中,不能直接使用btn1,否则实现不了本语句的功能。
-
开启另一个Activity——Intent
功能描述:在两个Activity中有一个TextView和一个Button,用来显示本Activity的名称和跳转到另外一个Activity中;
代码实现:
Intentintent = newIntent();
intent.setClass(OtherActivity.this,SwitchActivityActivity.class);
startActivity(intent);
注意:当一个application中有多个activity时,需要在androidManifext.xml中为每一个activity都要注册。
-
不同Activity之间的数据传递——Bundle
功能描述:在activity01中有一个EditText控件,和一个Button控件。当EditText中有内容时,按下Button,此信息将会在Activity02中的TextView中显示出来。
代码如下:
Activity01中的Button单击事件中:
inputMessage= snd1.getText().toString();
if(inputMessage.equals("")){
Toast.makeText(Activity01.this,"Pleaseinput message used sent !",Toast.LENGTH_LONG).show();
}else{
Intent intent = newIntent();
intent.setClass(Activity01.this,Activity02.class);
Bundle bundle = newBundle();
bundle.putString("snd1",inputMessage);
intent.putExtras(bundle);
startActivity(intent);
finish();
}
Activity02中的接收代码:
Bundlebundle = this.getIntent().getExtras();
recvMessage2= bundle.getString("snd1");
recv2.setText(recvMessage2);
注意:对于Activity01中的输入信息的获取一定要放在单击事件中,否则,将会获取不到输入的信息。
4、返回数据到前一个Activity——startActivityForResult
功能描述:在Activity01中有一个TextView用来显示传送来的信息,一个Button,用来跳转到Activity02中;在Activity02中有一个EditText用来输入要传送的信息,还有一个Button用来关闭当前的Activity02,并传送数据。
代码如下:
Activity01中Button的单击事件:
Intentintent = newIntent();
intent.setClass(Activity01.this,Activity02.class);
Bundlebundle = newBundle();
bundle.putString("snd1",inputMessage); intent.putExtras(bundle);
startActivityForResult(intent,0);
Activity02中Button的单击事件:
Intentintent = newIntent();
intent.setClass(Activity02.this,Activity01.class) Bundlebundle2 = newBundle();
bundle2.putString("snd2",sndMessage2);
intent.putExtras(bundle2);
setResult(0,intent);
finish();
在Activity01类中覆写onActivityResult来接收数据:
if(resultCode== 0){
Bundlebundle2 = data.getExtras();
recvMessage= bundle2.getString("snd2");
recv1.setText(recvMessage);
}
注意:在覆写的onActivityResult方法中,Bundle类的对象不是新建的,而是通过参数获取到的。
5、具有交互功能的对话框—————AlertDialog窗口
功能描述:在主Activity里面有一个退出Button,按下此Button后,会显示一个确认退出的对话框,点击对话框里面的确定后会退出。
代码如下:
newAlertDialog.Builder(ShowDialog.this)
.setTitle("请确认...")
.setMessage("确认要退出吗?")
.setPositiveButton("确定",
newDialogInterface.OnClickListener() {
@Override
publicvoidonClick(DialogInterface dialog, intwhich)
{
//TODOAuto-generated method stub
finish();
}
}).show();
6、全屏与退出全屏
按下一个Button为全屏,按下另一个Button为退出全屏
代码如下:
全屏代码:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
退出全屏代码:
finalWindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.flags&= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().setAttributes(attrs);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);