android的activity类与intent的问题
是不是有几个activity就要有几个类在一个activity中可以既发送intent又getIntent吗如果可以的话xml中要怎么设置呀请高手给个小例子...
是不是有几个activity就要有几个类
在一个activity中可以既发送intent 又getIntent吗
如果可以的话 xml中要怎么设置呀
请高手给个小例子 展开
在一个activity中可以既发送intent 又getIntent吗
如果可以的话 xml中要怎么设置呀
请高手给个小例子 展开
1个回答
展开全部
每个Activity都需要一个类来继承,
Activity你可以理解成一个应用场景,如果你想像成web网页,那么它就是一个页面。
多个activity之间可以跳转,就像网页之间相互跳转一样。你只需要设置Intent,不需要GetIntent
GetIntent是系统做的事情,系统收到你的Intent意图,会自动生成你想要跳到的那个页面的类对象实例,并自动回调该类的Oncreate方法,你只要在该Oncreate方法里写下你那个页面的UI初始化工作就可以了。
跳转可以像你说的那样使用Intent机制来实现:
Intent intent = new Intent();
intent.setClass(this, Page.class);
this.startActivity(intent);
这样就可以了。关键是setClass方法, 参数一是当前这个Activity也就是当前页面的类,参数二是另一个页面的class
为什么是class而不是object对象呢? 因为Android希望你不要去实例new一个页面对象,而是告诉系统你要跳转到哪个页,由系统帮你new一个该页面的对象。然后系统帮你跳过去,这个过程你不要运控制就好了。
继续:
当this.startActivity方法执行后,页面就会从当前页跳转到你指定的下一页,这我的例子中,那个页叫Page ,它也是extends Activity的一个类,
有一个前提,所有的Activity(包括这个Page)都必须实例Activity的抽像方法OnCreate();因为Activity是抽象类,而onCreate又是抽像方法,所以你必须实现,填完整这个方法,在里面写点东西,一般都是生成一些,按钮,菜单,图片,文字等进行界面的初始化。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
instance=this;
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.setContentView(R.layout.main);
//TODO
//your code
}
同样还有Onstop,onResume等方法可以实现,但他们不是抽像方法,可以选择性的实现。不强制。
至于在xml中的配置是这样的,你需要填所有的activity页面类的路径
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Mstar"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Page" android:label="@string/app_name" >
</application>
如上所示,在工程的AndroidManifest.xml文件中,有一个application标签, 每个Activity你都必须为它生成一个
<activity>标签, 其中程序的入口activity不用你填,由插件自动帮你做好了,你需要填写的是Page那个,
即 <activity android:name=".Page" android:label="@string/app_name" >
".Page"代表是当前路径下的 Page.java文件
lable代表是那个页面默认的标题栏字符,
“@string/app_name” 代表访字符存放在 res/values/strings.xml文件中有一个 app_name的字段里
所有这些都是很简单的,你应该去书点买一本入门的书来看,会比现在没有头绪好很多。
重要是你要搞清楚Activity的生命周期,Oncreate是怎么被系统自动调用的。
最后Intent中可以带数据过去,你现在可以采用Bundle 机制,Bundle 可以想像成一个Hashmap
也就是说你可以从一个页面传健值对序列到另一个页面。
好好看看书吧。
Activity你可以理解成一个应用场景,如果你想像成web网页,那么它就是一个页面。
多个activity之间可以跳转,就像网页之间相互跳转一样。你只需要设置Intent,不需要GetIntent
GetIntent是系统做的事情,系统收到你的Intent意图,会自动生成你想要跳到的那个页面的类对象实例,并自动回调该类的Oncreate方法,你只要在该Oncreate方法里写下你那个页面的UI初始化工作就可以了。
跳转可以像你说的那样使用Intent机制来实现:
Intent intent = new Intent();
intent.setClass(this, Page.class);
this.startActivity(intent);
这样就可以了。关键是setClass方法, 参数一是当前这个Activity也就是当前页面的类,参数二是另一个页面的class
为什么是class而不是object对象呢? 因为Android希望你不要去实例new一个页面对象,而是告诉系统你要跳转到哪个页,由系统帮你new一个该页面的对象。然后系统帮你跳过去,这个过程你不要运控制就好了。
继续:
当this.startActivity方法执行后,页面就会从当前页跳转到你指定的下一页,这我的例子中,那个页叫Page ,它也是extends Activity的一个类,
有一个前提,所有的Activity(包括这个Page)都必须实例Activity的抽像方法OnCreate();因为Activity是抽象类,而onCreate又是抽像方法,所以你必须实现,填完整这个方法,在里面写点东西,一般都是生成一些,按钮,菜单,图片,文字等进行界面的初始化。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
instance=this;
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.setContentView(R.layout.main);
//TODO
//your code
}
同样还有Onstop,onResume等方法可以实现,但他们不是抽像方法,可以选择性的实现。不强制。
至于在xml中的配置是这样的,你需要填所有的activity页面类的路径
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Mstar"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Page" android:label="@string/app_name" >
</application>
如上所示,在工程的AndroidManifest.xml文件中,有一个application标签, 每个Activity你都必须为它生成一个
<activity>标签, 其中程序的入口activity不用你填,由插件自动帮你做好了,你需要填写的是Page那个,
即 <activity android:name=".Page" android:label="@string/app_name" >
".Page"代表是当前路径下的 Page.java文件
lable代表是那个页面默认的标题栏字符,
“@string/app_name” 代表访字符存放在 res/values/strings.xml文件中有一个 app_name的字段里
所有这些都是很简单的,你应该去书点买一本入门的书来看,会比现在没有头绪好很多。
重要是你要搞清楚Activity的生命周期,Oncreate是怎么被系统自动调用的。
最后Intent中可以带数据过去,你现在可以采用Bundle 机制,Bundle 可以想像成一个Hashmap
也就是说你可以从一个页面传健值对序列到另一个页面。
好好看看书吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询