首页 > 代码库 > android学习心得之Activity
android学习心得之Activity
安卓是什么
android是基于linux内核实现的操作系统,不同与其他系统的是,安卓系统在分配进程时,每个进程先安装了jvm,每个安卓app都运行在独立的jvm上,这样安卓app之间就不会发生冲突了。安卓基本的内容
Activity
Activity是直接与用户进行接触的界面,一个app里面可以包含一个或多个Activity。
Acitivity里面有一些常见的方法:
首先是Toast()方法,这个方法可以弹出消息框。
ackage com.example.newcardgame;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Toast.makeText(MainActivity.this, "You clicked Button1",
Toast.LENGTH_SHORT).show();
}
});
}
@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中的menu:
手机的屏幕是有限的,为了节约显示空间,安卓系统有menu这一个组件,可以让用户在需要的时候才点击munu来选择一些比较少用的选项,而不是让所有选项都布满整个屏幕。
使用menu很简单,首先是在res文件夹中的menu文件夹中的main.xml文件夹中添加选项:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
<item
android:id ="@+id/add_item"
android:title="Add"/>
<item
android:id="@+id/remove_item"
android:title="Remove"/>
</menu>
接着首先是要在Activity中显示menu,用onCreateOptionsMenu方法里面添加getMenuInflater().inflate(R.menu.main, menu);
这行代码,然后是添加点击选项的选择事件,用onOptionsItemSelected方法
package com.example.newcardgame;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Toast.makeText(MainActivity.this, "You clicked Button1",
Toast.LENGTH_SHORT).show();
}
});
}
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(MainActivity.this, "you clicked add",
Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(MainActivity.this, "you clicked remove",
Toast.LENGTH_SHORT).show();
break;
default:
}
return true;
}
}
既然一个Activity是一个界面,一个程序往往是需要在多个界面之间转换,因此需要一个中转的组件,Intent就是一个这样的组件,他实现Activity之间的切换,还帮助页面之间传递数据。
Intent有两种用法,显示Intent和隐式Intent
显示Intent,顾名思义就是用new方式创建的Intent里面指明需要切换的Activity
首先先创建一个新的Activity,并且在layout里面设置新的界面。在Activity通过创建Intent来创建新Activity
package com.example.newcardgame;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
});
}
}
隐式Intent
隐式Intent不用在new Intnt的时候指明需要转换的Acivity只需要指明action类型和种类,在AndroidMainfest.xml文件种配置每个Acitvity的种类,在程序运行的时候就会通过拦截器实现找到实际实现的Activity。
<activity android:name=".SecondActivity">
<intent-fileter>
<action android:name="com.example.activityest.ACTION_START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
button1.setOnclickListener(new OnClickListener(){
public void onClick(View v){
Intent intent = new Intent("com.example.activitytest.ACTION_START");
intent.addCategory("com.example.activitytest.MY_CATEGORY");
startActivity(intent);
}
});
通过Intent可以向别的Activity以键值对的方式传递数据
intent.putExtra("extra_data",data);
数据接收Activity通过如下方式获得数据:
Intent intent = getIntent();
String data = inent.getStringExtra("extra_data");
来自为知笔记(Wiz)
android学习心得之Activity
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。