Activity_1
来源:互联网 发布:跑步软件排名 编辑:程序博客网 时间:2024/06/05 23:43
1.intent:(ComponentName Action Data Category Extra Flag)
- 1.在一个程序内部 使用 ComponentName 即类名进行请求。
- 2.在程序中若需要调用其他程序的方法,可以通过其他程序已声明的intent filter(Action Data Category)进行请求。
- 如:activity 的启动
- <intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
- 3.Android系统内置了很多功能模块给其他人使用,故定义不很多action/category常量供大家使用
2.MVC model
Model:
- 模型,其实就是业务逻辑与义务数据
- 计算器程序中的Calculator就是Model,负责计算并产生显示用的结果
View:
- 界面,负责显示Model并与人交互
- 计算器中的layout文件代表不view,会被读入并生成view对象树,通过Activity.setContentView(...) 与Activity绑定
Controller:
- 控制器,负责接受view的用户操作,更新Model内容,从Model得到相关数据,根据一定规则决定刷新当前view或显示新的view
- 计算器中的MainActivity就是Controller,从界面得到用户输入的键,启动Calculator计算,并刷新界面上的结果text view
3.例子:两个Activity之间跳转
功能:从MainActivity点击按钮后跳到OtherActivity,显示从MainActivity带过来的名字
public class MainActivity extends Activity {
private Button myButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myButton = (Button)findViewById(R.id.myButton);
myButton.setOnClickListener(new MyButtonListener());
}
class MyButtonListener implements OnClickListener{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(MainActivity.this,OtherActivity.class);
intent.putExtra("name", "123");
MainActivity.this.startActivity(intent);
}
/////////////////////////////
public class OtherActivity extends Activity {
private TextView tv;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //必须调用,否则Activity初始化未完成
setContentView(R.layout.otheractivity);
tv = (TextView)findViewById(R.id.textView);
Intent intent = getIntent();
String name = intent.getExtras().getString("name");
tv.setText(name);
//Intent intent = getIntent();
}
}