0315一、Activity是什么和Intent

来源:互联网 发布:淘宝大悦运动是正品吗 编辑:程序博客网 时间:2024/05/08 18:42

一 、 活动Activity

是一种包含用户界面的组件,主要用于和用户交互。

1.隐藏标题

requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题栏

2.使用Toast来提示用户,显示后自动消失

点击按钮提示

Button button1 = (Button) findViewById(R.id.button_1);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(FirstActivity.this, "You clicked Button1", Toast.LENGTH_SHORT).show();
}
});

3.使用menu

在res下创建menu文件夹,在menu文件夹下创建名叫main的Android XML File

在活动中

public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.add_item:
Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show();
break;
default:
}
return true;
}

一个创建菜单、一个相应菜单。

4.销毁一个活动

Back键或者 在activity类中finish()


**使用intent在活动之间跳转

intent是安卓各组件之间交互的一种重要方式,不仅可以致命当前组件想要完成的动作,还可以在不同组件之间传递数据。

一般被用于启动活动、启动服务、以及发送广播等场景。分显式intent和隐式intent。

1.修改第一个activity中的某个click事件

public void onClick(View v) {
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.addCategory("com.example.activitytest.MY_CATEGORY");
startActivity(intent);
}

2.隐式intent,不仅可以启动自己程序内的活动,还可以启动其他程序的活动,使Android多个应用程序之间功能共享成为可能。

public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
}

3.调用系统拨号界面

public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
}

4。向下一活动传递数据

传入

public void onClick(View v) {
String data = "Hello SecondActivity";
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra("extra_data", data);//one is key ,other is value;
startActivity(intent);
}

接收

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.second_layout);
Intent intent = getIntent();//用于启动SecondActivity的Intent
String data = intent.getStringExtra("extra_data");//然后调用getStringExtra()传入键值,获取数据
Log.d("SecondActivity",data);
}

5.返回数据给上一活动

startActivityForResult()在活动销毁的时候能够返回一个结果给上一个活动。

FirstActivity中

public void onClick(View v) {
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivityForResult(intent, 1);
}

SecondActivity中

Button button2 = (Button) findViewById(R.id.button_2);
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v ) {
Intent intent = new Intent();
intent.putExtra("data_return", "Hello FirstActivty");
setResult(RESULT_OK,intent);//专门向上以个活动返回数据的
finish();
}
});

FirstActivity中接收返回的数据

通过重写onActivityResult来得到返回的数据

@Override
protected void onActivityResult(int requestCode,int resultCode , Intent data){
switch (requestCode){
case 1 :
if(resultCode == RESULT_OK){
String returnedData = data.getStringExtra("data_return");
Log.d("FirstActivity", returnedData);
}
break;
default:
}
}

6.通过Back键来返回数据

@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putExtra("data_return", "Hello FirstActivity By BACKKEY");
setResult(RESULT_OK,intent);
finish();
}

当用户按下back建,就会执行onBackPressed()方法中的代码。

0 0
原创粉丝点击