Android的startactivity不跳转跳转时候,中间多了一个支付页面,这是别人做的,首先清单文件看了没问

& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区Android培训-起步另外一个Activity
&来源:读书人网&【读书人网():综合教育门户网站】
Android培训---启动另外一个Activity本文译自:/training/basics/firstapp/st
Android培训---启动另外一个Activity本文译自:/training/basics/firstapp/starting-activity.html本课工程代码下载地址:http://download.csdn.net/detail/fireofstar/4855426学习完前一课之后,你应该有一个应用程序,它会显示一个带有一个文本域和一个按钮的Activity。在本节课中,你会在MainActivity中添加一些代码,当用户点击Send按钮时,会执行这些代码来启动一个新的Activity。响应Send按钮点击事件打开activity_main.xml布局文件,给&Button&元素添加android:onClick属性来响应按钮的on-click事件:&Button&&&android:layout_width=&wrap_content&&&&android:layout_height=&wrap_content&&&&android:text=&@string/button_send&android:onClick=&sendMessage& /&android:onClick属性值“sendMessage”是你的Activity中的方法名称,当用户点击该按钮时,系统会调用这个方法。打开MainActivity类(在src/目录中),添加对应的方法:/** Called when the user clicks the Send button */public void sendMessage(View view) {&&&// Do something in response to button}这会要求你导入View类:import android.view.V提示:在Eclipse中,按下Ctrl+Shift+O组合键导入缺少的类(在Mac电脑上是Cmd+Shift+O组合键)。为了让系统找到跟android:onClick属性所指定方法名相匹配的方法,代码中的方法必须遵循以下规则:1.&必须是public类型;2.&要有一个void类型的返回值;3.&要只有一个View类型的参数(该View参数是用户点击的那个View对象)接下来,你会在这个方法中编写读取文本域内容,并把该文本内容发送给另一个Activity的代码。构建一个Intent对象一个Intent是一个对象,它提供了分离组件间的运行时绑定(如两个Activity)。Intent对象代表了一个应用程序要做某些事情的意图。Intent的应用范围很宽,但大多数的时候会用于启动另外一个Activity。在sendMessage()方法内,创建一个用于启动名叫DisplayMessageActivity的Activity的Intent对象:Intent intent=newIntent(this,DisplayMessageActivity.class);上述构造器需要两个参数:1.&第一个参数是Context类型(因为Activity类是Context类的子类,所以这里使用this);2.&第二个参数是Class类型,它指向一个应用程序组件,系统会把Intent对象发送给这个应用程序组件(在本例中,该Activity应该被启动)。注意:如果你使用一个IDE环境,那么对DisplayMessageActivity的引用会产生一个错误,因为这个类还不存在。先忽略这个错误,一会儿我们会创建这个类。Intent不仅允许启动另外一个Activity,而且还可以携带数据包。在sendMessage()方法内,使用findViewById()方法来获得EditText元素,并把它的文本值添加给Intent对象:Intent intent = new Intent(this, DisplayMessageActivity.class);EditText editText = (EditText) findViewById(R.id.edit_message);String message = editText.getText().toString();intent.putExtra(EXTRA_MESSAGE, message);注意:你需要引入android.content.Intent和android.widget.EditText类。还要定义一个EXTRA_MESSAGE常量。Intent对象可以用被叫做key-value的extras来携带各种类型的数据集合。putExtra()方法的第一个参数是键名称,第二个参数是值。为了让下一个Activity能够查询到附加的数据,你应该使用public常量来定义Intent附加数据的键名。因此要在MainActivity类的顶部来定义EXTRA_MESSAGE常量:public class MainActivity extends Activity {&&&public final static String EXTRA_MESSAGE = &com.example.myfirstapp.MESSAGE&;&&&...}通常,使用应用程序包名来作为Intent附加数据的键名常量定义的前缀,是一个良好的习惯,这样会保证它们的唯一性。启动第二个Activity调用带有Intent参数的startActivity()方法来启动Activity。系统会接收这个调用,并启动Intent对象所指定的Activity的实例。以下是Send按钮所涉及到的完整的sendMessage()方法:/** Called when the user clicks the Send button */public void sendMessage(View view) {&&&Intent intent = new Intent(this, DisplayMessageActivity.class);&&&EditText editText = (EditText) findViewById(R.id.edit_message);&&&String message = editText.getText().toString();&&&intent.putExtra(EXTRA_MESSAGE, message);&&&startActivity(intent);}创建第二个Activity以下是使用Eclipse创建一个新的Activity的步骤:1.&点击工具栏中New按钮;2.&在弹出的窗口中,打开Android文件夹,并选择Android Activity。点击Next按钮;图1.Eclipse中的新Activity向导。3.&选择BlankActivity,并点击Next按钮;4.&在Activity明细中填写以下信息:&&& A.&Project:MyFirstApp&&& B.&Activity Name:DisplayMessageActivity&&& C.&Layout Name:activity_display_message&&& D.Title:My Message&&& E.&Hierarchial Parent:com.example.myfirstapp.MainActivity&&& F.&Navigation Type:None点击Finish按钮。如果你使用不同的IDE或命令行工具,就要在src/目录中创建一个新的名叫DisplayMessageActivity.java的类文件。如果你使用Eclipse来创建这个Activity,那么请打开这个DisplayMessageActivity.java文件:1.&这个类已经包含了所要求的onCreate()方法的一个实现;2.&还有一个onCreateOptionsMenu()方法实现,但在本应用程序中不使用这个方法,因此你可以删除它。3.&还有一个onOptionsItemSelected()方法的实现,它会处理操作栏的up行为,请保留该方法。以下是这个类的代码:public class DisplayMessageActivity extends Activity {&&&@Override&&&protected void onCreate(Bundle savedInstanceState) {&&&&&&&super.onCreate(savedInstanceState);&&&&&&&setContentView(R.layout.activity_display_message);&&&&&&&// Show the Up button in the action bar.&&&&&&&getActionBar().setDisplayHomeAsUpEnabled(true);&&&}&&&@Override&&&public boolean onOptionsItemSelected(MenuItem item) {&&&&&&&switch (item.getItemId()) {&&&&&&&case android.R.id.home:&&&&&&&&&&&NavUtils.navigateUpFromSameTask(this);&&&&&&&&&&&&&&&&&&}&&&&&&&return super.onOptionsItemSelected(item);&&&}}如果你使用的是Eclipse以外的IDE,就要使用上面的代码来更新你的DisplayMessageActivity类。所有的Activity的子类都必须实现onCreate()方法。系统会在创建该Activity实例的时候调用这个方法。这个方法是你必须用setContentView()方法定义Activity布局的位置,并且也是初始化该Activity组件的位置。注意:如果你使用不是Eclipse的IDE,那么你的工程不会包含setContentView()方法所要求的activity_display_message布局文件。在本例中,不会有问题,因为稍后更新了onCreate()方法后,就会不使用这个布局文件了。添加标题字符串如果你使用Eclipse,你可以跳过下一节,因为模板会给这个新的Activity提供标题字符串。否则,把新的Activity的标题添加到strings.xml文件中:&resources&&&&...&&&&string name=&title_activity_display_message&&My Message&/string&&/resources&把这个Activity添加到清单中所有的Activity都必须在你的清单(AndroidManifest.xml)中使用&activity&元素来声明。当你使用Eclipse工具来创建这个Activity时,它会创建一个默认的实体。否则,你需要把以下内容添加到清单文件中:&application ... &&&&...&&&&activity&&&&&&&android:name=&com.example.myfirstapp.DisplayMessageActivity&&&&&&&&android:label=&@string/title_activity_display_message&&&&&&&&android:parentActivityName=&com.example.myfirstapp.MainActivity& &&&&&&&&&meta-data&&&&&&&&&&&android:name=&android.support.PARENT_ACTIVITY&&&&&&&&&&&&android:value=&com.example.myfirstapp.MainActivity& /&&&&&/activity&&/application&android:parentActivityName属性声明这个Activity的父Activity的名称。系统使用这个值来实现默认的导航行为,如Android4.1(API Level 16)以上版本中的Up导航。通过使用支持类库,并添加像上面那样的&meta-data&元素,你可以给较低的Android版本提供相同的导航行为。注意:你的Android SDK应该已经包含了最新的Android支持类库,包括捆绑的ADT,但是如果你使用的是不同的IDE,你应该在添加平台和包的时候完成对它的安装。在使用Eclipse中的模板的时候,支持类库会自动的添加到你的应用程序的工程中(在Android Dependencies中你可以看到类库的JAR文件)。如果你没有使用Eclipse,你就需要手动的把类库添加给你的工程---按照建立支持类库指南来做,然后返回。如果你在使用Eclipse来进行开发,现在就可以运行你的应用程序了,但是不会有什么特别的发生。点击Send按钮启动第二个Activity,但是他会使用模板提供的默认的“Hello world”模板。一会儿你会更新这个Activity来替换这个定制的文本View的显示,因此如果你使用的是不同的IDE,那么就不要担心依然还不能编译的应用程序。接收Intent每个由Intent调用的Activity,不管你是如何导航到那儿的,你都可以通过调用getIntent()方法来获得启动你Activity的那个Intent对象,并且获得包含其中的数据。在DisplayMessageActivity类的onCreate()方法中,获得由MainActivity发送的Intent对象并提取其中的消息:Intent intent = getIntent();String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);显示消息创建一个TextView,并使用setText()方法给它设置文本来把消息显示在屏幕上。然后通过setContentView()方法把TextView作为这个Activity的根View添加到布局中。以下是DisplayMessageActivity类的onCreate()方法的完整代码:@Overridepublic void onCreate(Bundle savedInstanceState) {&&&super.onCreate(savedInstanceState);&&&// Get the message from the intent&&&Intent intent = getIntent();&&&String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);&&&// Create the text view&&&TextView textView = new TextView(this);&&&textView.setTextSize(40);&&&textView.setText(message);&&&// Set the text view as the activity layout&&&setContentView(textView);}现在运行这个应用程序,在打开时,在文本域中键入消息,然后点击Send按钮,就会看到显示消息的第二个Activity。图2.运行在Android4.0上的应用中的两个Activity。android activity间通讯,跳转回主activity时总会刷新,如何才能不刷新_百度知道
android activity间通讯,跳转回主activity时总会刷新,如何才能不刷新
正常的回退操作不会对activity刷新。除非你在onresume,或onrestart等方法中进行了界面操作,因为跳转回activity是,会执行onresume或onrestart-&onstart()-&onresume()生命周期。当然,除此之外还有其他多种可能,要看你的代码而定,如调用startActivityforresult进行跳转,在接收onactivityresult()方法中处理了ui.还有可能你进行跳转后,你的主activity被回收了,你返回的是一个新的Activity,这和你的activity设置有关。
其他类似问题
为您推荐:
提问者采纳
jpg" esrc="http,其他的方法不会跑,可以不用跳啊://b.com/zhidao/pic/item/0ecf9d045.baidu。<img class="ikqb_img" src="/zhidao/wh%3D600%2C800/sign=eeca35a1bf8cd4/0ecf9d045://b。仔细弄明白你就知道了
求的就是这个,第二个activity是finish掉了,不过第一个就总是重置,我先看看呗
提问者评价
谢谢你,包括楼上的那位但是只能选一个给分我就给第一个了,毕竟还有图
android的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁ActivityGroup里面实现子activity的跳转 下上标题菜单不动 中间页面点击按钮实现跳转 - Android当前位置:& &&&ActivityGroup里面实现子activity的跳转 下上标题菜ActivityGroup里面实现子activity的跳转 下上标题菜单不动 中间页面点击按钮实现跳转&&网友分享于:&&浏览:743次ActivityGroup里面实现子activity的跳转 上下标题菜单不动 中间页面点击按钮实现跳转这里用的是&activityGroup实现下面的界面
想要实现上面标题和下面的菜单不一直处于不动的状态
&菜单的点击已经实现了可以切换的&现在想要点击中间部分的地方来实现中间页面的跳转
&如点击listView中跳转到如下页面
不过直接在中间页面上面写&activity的跳转&会将&整个原先的activitygroup的替代掉变成如下效果
原先的菜单栏也没有掉了
请问&这个要怎么实现------解决方案--------------------1.别用activity跳转,中间部分单独设计一个类继承任意一种layout,然后需要切换界面的时候,直接setLayout就行了。
2.上中下三部分分别都继承layout,然后跳转activity时,新的activity的上下两部分仍然加载原先的layout。
个人建议第一种。------解决方案--------------------1.嗯,写在一个activity里,只更换中间的layout,能理解么。
2.不同的布局可以分开放,例如:topLayout.xml,&mainLayout.xml,&bottomLayout.xml...
一个activity里可以由多个layout组合,我们设计界面的时候都是尽量把每一板块用一个layout独立起来。例如:版头layout,左边layout,主菜单layout,底部layout。这样板块的复用性就高了。可以在activity里任意组合。
我写的第一个项目就是你这种菜单,几乎一模一样,呵呵,还有不懂的问我------解决方案--------------------引用:还有一个&那五个&布局文件里面&&所对应的&点击事件&&就应该&都写在&一个activity里面吧
下次请引用我的发言,不然我几乎是没机会再看到这个帖子的。。。
不是。每个布局中的监听器当然写在布局里面。activity只负责组合布局,和它自己的各种事件和回调等等。。。
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有Android的activity跳转时候,中间多了一个支付页面,这是别人做的,首先清单文件看了没问_百度知道
Android的activity跳转时候,中间多了一个支付页面,这是别人做的,首先清单文件看了没问
这是别人做的Android的activity跳转时候,中间多了一个支付页面,我都不知道他的类名,绝对没毛病,其次跳转我看了n遍,首先清单文件看了没问题
你这问题描述的也不清晰,不知道你想问什么,你这个支付界面应该是微信支付的吧?
这样说吧,我a页面跳转到b界面
然后有多出来一个c界面,从c界面点返回,才正常回到我想跳转的b界面,
说白了,我连续跳转了两个页面
c界面应该是支付activity自己带的界面,你可以把那个界面的布局去掉的,我做微信支付的时候遇到过这样的情况。
其他类似问题
为您推荐:
android的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 安卓activity跳转 的文章

 

随机推荐