创建Activity的步骤
1 新建一个Android工程,起名为ActivityTest 将自动创建一个Activity选项勾选去掉 File-New-Android Application—图1
设置Application Name,PackageName点击Next-图2
将Create activity选项去掉,如上图,点击Next,Next,Finish
2 在Src文件中创建一个包,起名为comexampleactivitytest,此包名与图1中包名一致。
在包下新建一个class类,起名为Activity01 图3
在src中点击右键,New—Package—图4,
在包设置中,填写包名称,点击Finish。图5
在包上点击右键,New-Class
2 填写Activity名称。点击Finish。
3 在源文件中Activity01继承Activity,并复写onCreate方法(使用Alt+/导航键,使用Source/override method)
在创建好的文件中,使Activity01 extends Activity, 在提示中选择 Import androidappActivity
在Activity类中点击右键,选择source—Override/Implement Methods,选择onCreate(Bundle),点击ok
4 在AndroidManifestxml文件中注册Activity,并设置为MainActivity。 打开AndroidManifestxml文件
在<application></application>中添加<activity></activity>
<activity
android:name="comtestactivityActivity01" android:label="myFirstActivity" > <intent-filter>
<action android:name="androidintentactionMAIN"></action>
<category android:name="androidintentcategoryLAUNCHER"></category> </intent-filter> </activity>
<intent-filter></intent-filter>过滤器将此Activity设置为首选项。 此时可运行程序,查看Activity的界面,界面空白。
5 在布局文件中设置简单的Button控件、EditText控件、 ViewText控件。 选择res—layout—右键—New Android xml文件
填入File名称—Finish。 在布局文件中添加控件
6 在源文件中使用setContentView函数,引用布局文件资源。 在Activity01java文件中添加代码
7 在源文件中通过findViewById函数来引用控件,并执行相应的text改变。
8 运行程序,观察效果。
Activity的使用:
(1)通过调用startActivity(intent)启动Activity,intent用来准确的描述你要启动的Activity,或者你要进行的action,intent也可以用来携带小数据给被启动Acitivity。
当在同一个应用中间需要简单启动另一个Activity,intent明确的定义你要启动Activity类即可:
[java] view plain copy
//定义一个intent,指名要启动的activity:ToStartActivity
Intent intent = new Intent(MainActivitythis,ToStartActivityclass);
//使用startActivity(),启动activity
startActivity(intent);
在你的应用程序需要执行一些自身没有Activity可以执行的行为时,我们可以使用手机上的其他应用程序的Activity来代替执行。比如发送一个mail、查看一张、搜索一个单词等等。这个里也就是Intent的重要指出,你可以定义一个intent描述你想要做的行为,等你发送给系统后,系统会启动合适的Acitivty帮你执行,如果有多个应用的Activity都可以处理此行为时,系统会让用户去选择一个。
[java] view plain copy
//跨应用从google界面搜索
Intent intent = new Intent(IntentACTION_WEB_SEARCH);
intentputExtra(SearchManagerQUERY, "zy");
startActivity(intent);
当夸应用启动Activity时,在定义intent时必须要为他指定具体的acitvity,前提是此activity必须暴露在自己应用程序之外(android:exported="true"):
[java] view plain copy
Intent intent = new Intent();
//指定要启动组建完整的包名,对象名
ComponentName cn = new ComponentName("comandroidsettings",
"comandroidsettingsRunningServices");
intentsetComponent(cn);
// 使用contextstartActivity()时需要新启一个任务
intentaddFlags(IntentFLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
(2)通过调用 startActivityForResult(intent),来接收到启动的Acitivity反馈的结果。为了接收接下来启动的Activity的结果,需要重写onActivityResult()这个回调函数。当调用的activity完成后,它将返回一个含有结果的intent给onActivityResult()处理。比如,在应用程序的Activity中,需要用户选择联系人中的一个,Activity需要得到联系人的部分信息:
[java] view plain copy
Intent intent = new Intent(IntentACTION_PICK,
ContactsPeopleCONTENT_URI);
//启动一个带有选择联系人返回结果的activity
startActivityForResult(intent, PICK_CONTACT_REQUEST);
这里的PICK_CONTACT_REQUEST为自定义的int型请求反馈结果代码。
[java] view plain copy
//重新onActivityResult()用来处理接收到的返回结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// 如果请求requestCode成功,且请求返回的结果resultCode是我们要的PICK_CONTACT_REQUEST
if (resultCode == ActivityRESULT_OK
&& requestCode == PICK_CONTACT_REQUEST) {
// 处理Intent返回的数据,在联系人数据库中查找联系人的名字
Cursor cursor = getContentResolver()query(datagetData(),
new String[] { ContactsPeopleNAME }, null, null, null);
if (cursormoveToFirst()) { // 如果cursor不为空,就查找出联系人的名字
int columnIndex = cursorgetColumnIndex(ContactsPeopleNAME);
String name = cursorgetString(columnIndex);
//添加其他功能
这里在要说明是onActivityResult()使用来处理返回结果的,首先要检查的是请求是否成功,然后是否有返回结果,结果是否是startActivityForResult()中所要的,如果满足,则处理通过Intent返回的数据。
4关闭Activity:
(1)Activity可以调用finish()方法关闭自己,也可以通过调用finishActivity()的方法关闭一个独立的之前启动的Activity。
调用finish()方法关闭自己:
[java] view plain copy
//关闭Activity
finish();
(2)调用finishActivity()的方法关闭一个独立的之前启动的Activity
[java] view plain copy
//此方法用在关闭使用startActivityForResult(requestCode)启用的Activity
thisfinishActivity(requestCode);
关于何时关闭一个Activity,一般由系统直接为我们管理。但是当你确认用户不用返回到此Activity时,我们调用以上方法关闭对应的Activity。
自定义扩展Activity中,如何获取当前SPWeb、SPList、SPListItem、SPFile等?比如,最简单的,如何获取当前工作流运作的ListItem数据?
完全可以在自定义Activity中通过WorkflowContext上下文获取到当前项或当前SPWeb等信息。除非你要获取其他Site的数据,否则就没必要用去把Site Url、List Guid或ListItem ID等这些数据信息作为输入参数让工作流定制人员来手工输入以获取相关对象。
可以使用Android的数据存储功能来实现多个Activity之间共享数据。
Android中数据的存储有五种方式不同的应用及需求,会使用不同的方式去存储数据。
1 使用SharedPreferences存储数据
2 文件存储数据
3 SQLite数据库存储数据
4 使用ContentProvider存储数据
5 网络存储数据
不同的业务逻辑,或者需求,用不同的实现方式,以下是这几中数据存储方式的说明用及法:
第一种: 使用SharedPreferences存储数据
它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。
其存储位置在/data/data/< >/shared_prefs目录下。
第二种: 文件存储数据
关于文件存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。文件可用来存放大量数据,如文本、、音频等。
默认位置:/data/data/< >/files/。
第三种: SQLite数据库存储数据
SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite。
数据库存储在 data/< 项目文件夹 >/databases/ 下。
第四种: 使用ContentProvider存储数据 ContentProvider其实也是通过数据库的方式来存储数据的,因此这里不再做详细介绍。
第五种 :网络存储数据 也就是说将数据保存在服务器,android上只需要通过>
java工作流怎么用activity
常用的是:activiti-engine-591jar,activiti-spring-59jar;
解释:以上两个只是activiti工作流的常用包,通常会配置如spring开发的java包,还有数据库jar包等进行使用,但具体要用到什么包,这个和业务开发的逻辑有关系,也没办法进行详细说明的,所以只需要先下载常用的两个,其余的辅助包如:日志包、spring包、数据库包、hibernate包、struts包、mybatis包等根据实际需要添加即可。
通常来说,一个android应用程序不止一个Activity(活动),更不止一个界面。于是需要创建多个Activity来满足应用程序的要求,这里我将告诉大家如何添加新的Activity,并实现Activity之间的切换,这里的两个活动以不同界面展示,活动的切换相当于界面的切换。
Android studio
Android手机或者安卓模拟器
首先创建一个Test项目工程,选择默认版式,选择好自己喜欢的主题(Theme)。
Android studio教程:[6]创建多个Activity
在文件管理器中找到layout下的xml文件,并将其复制粘贴一份到layout目录下,命名为second_activityxml。
Android studio教程:[6]创建多个Activity
接下来在java文件处新建一个java class,命名为SecondActivity。
Android studio教程:[6]创建多个Activity
Android studio教程:[6]创建多个Activity
此时可以看到文件目录中多出来一个xml文件和一个java类文件。
Android studio教程:[6]创建多个Activity
打开AndroidManifestxml文件,添加一个<activity></activity>标签,添加内容如下:
<activity
android:name="SecondActivity"
android:label="Second Activity">
<intent-filter>
<action android:name="comlitreilySecondActivity"/>
<category android:name="androidintentcategoryDEFAULT"/>
</intent-filter>
</activity>
Android studio教程:[6]创建多个Activity
修改SecondActivityxml:
<TextView
android:text="The Second Activity!"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Android studio教程:[6]创建多个Activity
修改SecondActivityjava文件:
public class SecondActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(RlayoutSecondActivity);
}
}
Android studio教程:[6]创建多个Activity
修改主界面的activity_myxml文件,添加一个按钮,用于跳转Activity:
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="转到下一个界面"
android:onClick="onClick"/>
Android studio教程:[6]创建多个Activity
在主界面的java类中实现按钮的点击事件响应函数onClick,通过startActivity函数打开新的Activity
public void onClick(View view)
{
startActivity(new Intent("comlitreilySecondActivity"));
}
Android studio教程:[6]创建多个Activity
设置采用模拟器打开App,并启动调试打开模拟器。
Android studio教程:[6]创建多个Activity
在模拟器中运行程序,点击按钮可以切换Activity,在第二个界面点击返回键可以返回主界面。
Android studio教程:[6]创建多个Activity
Android studio教程:[6]创建多个Activity
注意事项
xml文件的命名为小写字母或者数字,大写字母可能会报错
if(cursormoveToFirst()) {
String password = cgetString(cgetColumnIndex("name"));
//
}
把获取到的数据设置到Listview就可以了
Activity
首先,Activity是Android系统中的四大组件之一,可以用于显示View。Activity是一个与用记交互的系统模块,几乎所有的Activity都是和用户进行交互的,但是如果这样就能说Activity主要是用来显示View就不太正确了。
在深入了解Activity之前,我们先要知道一下MVC设计模式,在JAVAEE 中MVC设计模式已经很经典了,而且分的也比较清晰了,但是在Android中,好多人对MVC在Android开发中的应用不是很清楚,下面我就先来介绍一下MVC在Android开发中的应用:
M(Model 模型):Model是应用程序的主体部分,所有的业务逻辑都应该写在这里,在Android中Model层与JavaEE中的变化不大,如:对数据库的 *** 作,对网络等的 *** 作都放在该层(但不是说它们都放在同一个包中,可以分开放,但它们统称为Model层)。
V(View 视图):是应用程序中负责生成用户界面的部分,也是在整个MVC架构中用户唯一可以看到的一层,接收用户输入,显示处理结果;在Android应用中一般采用XML文件里德界面的描述,使用的时候可以非常方便的引入,当然也可以使用JavaScript+Html等方式作为View。
C(Controller控制层)android的控制层的重任就要落在众多的activity的肩上了,所以在这里就要建议大家不要在activity中写太多的代码,尽量能过activity交割Model业务逻辑层处理。
好了,在介绍过Android应用开发中的MVC架构后,我们就可以很明确的知道,在Android中Activity主要是用来做控制的,它可以选择要显示的View,也可以从View中获取数据然后把数据传给Model层进行处理,最后再来显示出处理结果。
介绍过Activity的主要作用后,那么我们就要详细说一下Activity了。
Activity生命周期图
Activity 的生命周期是被以下的函数控制的。
public class Activity extends ApplicationContext {
protected void onCreate(Bundle icicle);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onFreeze(Bundle outIcicle);
protected void onPause();
protected void onStop();
protected void onDestroy();
}
onCreate(Bundle) 函数是你进行初始化的地方,这个也是执行
setContentView(View)函数的地方,setContentView(View)函数可以传入一个由XML
编制的UI界面,可以使UI和具体实现完全分离。
onPause()函数是处理用户离开当前 Activity 的地方。更重要的是,任何在当前
Activity中的任何改变都要在这个函数中提交。
Activity有四种状态:
活动状态,当Activity处于Stack(栈)顶时,就是手机当前的现实屏幕,这是 Activity就
处于activity或者运行状态。
运行但是失去焦点,当Activity还处于运行状态时,但是屏幕是有另外一个Activity
处于文档处于焦点状态,当前的Activity就处于pause。
停止,当Activity被另一个Activity完全覆盖的时候,就被停止了,其实就是虽然在
运行,但是用户却看不见。
结束,当Activity处于pause或者stop时,系统可以结束 Activity,回收资源,这
是Activity就是处于结束状态了。
处于结束状态的是Activity,如果要使用户可见,只要重启才可以。
Activity的响应时间
当前Activity所在的线程为主线程,它的响应时间为5秒,如果在当前运行的Activity中进行耗时的 *** 作且响应时间起过5秒,那么程序就会报ANR错误。所以,这也是不建议在Activity中写太多复杂代码的原因之一。
当然,有些代码只能写在Activity中,不然就运行不了(它们不是生命周期方法),比如你想要获得android系统或者硬件一的些信息,就必须在Activity中写出来,如果单独写一个工具类获得不了。
以上就是关于简述activity的创建和使用步骤全部的内容,包括:简述activity的创建和使用步骤、activity工作流的领导签字意见和自定义的数据库表关联关系是什么、如何android多Activity间共享数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)