多个Activity相互调用和Intent

MainActivity.java和OtherActivity.java的相互调用

  首先MainActivity.java是Android程序自带的,新建一个类OtherActiviy extends Activity,添加OtherActivity的onCreate方法。

将OtherActivity在AndroidManifest.xml中注册:<activity  android:name=".OtherActivity" android:label="zhanglei"></activity>

新建一个.xml文件用于给OtherActivity添加布局文件,命名为other.xml.

activity_main.xml文件中有两个Button按钮:

<Button
                        android:id="@+id/myButton"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_alignLeft="@+id/textView1"
                        android:layout_below="@+id/textView1"
                        android:text="跳转" />
                  <Button
                        android:id="@+id/sendMessage"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/myButton"
                        android:text="发短信"/>

MainActiv.java中代码如下:

private Button myButton = null; //跳转按钮
                      private Button sendMessage = null; //发送短信按钮

myButton = (Button)findViewById(R.id.myButton);
                      myButton.setOnClickListener(new ButtonListener());
                      sendMessage = (Button)findViewById(R.id.sendMessage);
                      sendMessage.setOnClickListener(new SendMessageListener());

监听器如下:

class SendMessageListener implements OnClickListener{

@Override
                                 public void onClick(View v) {
                                          // TODO Auto-generated method stub
                                         Uri uri = Uri.parse("smsto://0800000123");
                                         Intent intent = new Intent(Intent.ACTION_SENDTO,uri);
                                         intent.putExtra("sms_body", "The SMS text");
                                         startActivity(intent);
                                   }

}
                        class ButtonListener implements OnClickListener{

@Override
                                    public void onClick(View v) {
                                           // TODO Auto-generated method stub
                                           Intent intent = new Intent();
                                           intent.putExtra("textIntent", "123");
                                           //第一个参数是当前Activity,第二个参数是跳转到的Activity
                                           intent.setClass(MainActivity.this, OtherActivity.class);
                                           MainActivity.this.startActivity(intent);
                                     }
                          }

OtherAcvitivity.java代码如下:

textView = (TextView)findViewById(R.id.myTextView);
                    Intent intent = getIntent();
                    String value = intent.getStringExtra("textIntent");
                    textView.setText(value);

时间: 2024-12-14 20:28:37

多个Activity相互调用和Intent的相关文章

Android组件间的相互调用

我们研究两个问题,1.Service如何通过Broadcaster更改activity的一个TextView.(研究这个问题,考虑到Service从服务器端获得消息之后,将msg返回给activity) 2.Activity如何通过Binder调用Service的一个方法.(研究这个问题,考虑到与服务器端交互的动作,打包至Service,Activity只呈现界面,调用Service的方法) 结构图见如下:效果图如下:点击“start service”按钮,启动Service,然后更改Activ

Android中通过WebView控件实现与JavaScript方法相互调用的地图应用

在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用android方法,在这里我个人觉得有点和DWR相似. 为了让大家容易理解,我写了一个简单的Demo,具体步骤如下: 第一步:新建一个Android工程,命名为WebViewDemo(这里我在assets里定义了一个html页面). 第二步:修改main.xml布局文件,增加了一个WebView控件还有But

WebView中Js与Android本地函数的相互调用

介绍 随着Html5的普及,html在表现力上不一定比原生应用差,并且有很强的扩展兼容性,所以越来越多的应用是采用Html与Android原生混合开发模式实现. 既然要实现混合开发,那么Js与Android原生函数的相互调用就必不可少了.这里写了一个demo,实现点击html中的图片进行本地展示. 原理 1.Android调用js很简单,直接webView.loadUrl("javascript:JS中的方法名称()");即可. 2.js调用Android方法,需要使用WebView.

Android高手进阶教程(二十)之---Android与JavaScript方法相互调用!

在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用android方法,在这里我个人觉得有点和DWR相似. 为了让大家容易理解,我写了一个简单的Demo,具体步骤如下: 第一步:新建一个Android工程,命名为WebViewDemo(这里我在assets里定义了一个html页面). 第二步:修改main.xml布局文件,增加了一个WebView控件还有But

Activity启动模式 及 Intent Flags 与 栈 的关联分析

   在学习Android的过程中,Intent是我们最常用Android用于进程内或进程间通信的机制,其底层的通信是以Binder机制实现的,在物理层则是通过共享内存的方式实现的.     Intent主要用于2种情景下:(1)发起意图  (2)广播     它的属性有:ComponentName,action,data,category,extras,flags等,通常情况下,进行Intent的匹配涉及到3个属性:Action,Data,Category.这些东西都需要了解才能对它有个深入的

【转】Activity启动模式 及 Intent Flags 与 栈 的关联分析

http://blog.csdn.net/vipzjyno1/article/details/25463457    在学习Android的过程中,Intent是我们最常用Android用于进程内或进程间通信的机制,其底层的通信是以Binder机制实现的,在物理层则是通过共享内存的方式实现的.     Intent主要用于2种情景下:(1)发起意图  (2)广播     它的属性有:ComponentName,action,data,category,extras,flags等,通常情况下,进行

两个android程序间的相互调用(apk互调)

通常我们用到的只是activity之间的互相跳转和调用,很少会用到apk级别的互相调用. 往往在一些应用上会用到,比如一个支付系统,可能会有很多的一系列的程序调用到:彩票系统.订票系统.团购网……全部使用一个支付系统会显的更加专业,也能减少不必要的重复. 下面介绍两种方法从一个apk启动另一个apk. 两个互相调用的项目是:demoapk1和demoapk2 demoapk2是被调用的,我们调用它的Pay_Activity.java 所有的界面都是最简单的 这是第一个demoapk1 这是dem

Activity启动模式及Intent的Flag属性对Intent传值的影响

前些时候在支援公司其它部门项目开发的时候,有同事问我:通过Intent在Activity之间进行数据传递,传递的Key和获取的Key都没错,为什么在目标Activity会获取不到传递过来的数据?在Key没错的情况下获取不到数据,那么无疑是Activity的启动模式及在跳转时给Intent设置的Flag属性引起的,于是乎有了今天这篇博客. 原因一:Activity的启动模式 那么Activity以哪种启动模式进行跳转时,会导致目标Activity获取不到传递过来的数据呢?在上一篇Activity启

【Android基础】Activity启动模式以及Intent Flags 与 栈 的全面解析

Android开发的过程中,Intent是我们最常用Android用于进程内或进程间通信的机制. Intent主要用于2种情景下:发起意图 .广播 其底层实现原理不在此篇文章的讨论范围,以后会陆续更新上的. 下面我就根据近期学习,总结记录下Activity启动模式 及 Intent Flags 与 栈 的关联分析. 1.首先我们先搞清楚什么是栈: 栈是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像一个杯子,每次都只能取杯子顶上的东西,而对于栈就只能每次访问它的栈顶元素,从而可以达到保护栈顶元