两个activity之间的跳转与传值

一:什么是Activity?

简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Activity,如下设置

<actionandroid:name="android.intent.action.MAIN" />当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关操作。

二:Activity的跳转与传值,主要是通过Intent类来连接多个Activity,以及数据的传递。

三:Activity的跳转传值,没有返回值。

//activity.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="跳转到第二个activity" />
</LinearLayout>
//Activity2.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="32px"
       />
<LinearLayout>
public class MainActivity extends Activity {

   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          findViewById(R.id.button1).setOnClickListener(new OnClickListener() {

                    public void onClick(View v) {

               Intent intent=new Intent(MainActivity.this, activity2.class); //跳转到那个页面            intent.putExtra("txt", "Hello world");                        //传递什么数据以键值对方式               startActivity(intent);                                        //启动Activity
                //Bundle dataBundle=new Bundle();
                //dataBundle.putString("txt", "hello");  //bundle类中加入数据(key -value的形式,另一个activity里面取数据的时候,就要用到key,找出对应的值                  //intent.putExtras(dataBundle);
                //startActivity(intent);
            }
        });

    }
    
public class activity2 extends Activity {

       TextView textView1;
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity2);
         textView1=(TextView) findViewById(R.id.textView1);
           textView1.setText(getIntent().getStringExtra("txt"));
          //activity1的textview显示activity2传来的值          }

}

四:Activity的跳转传值,有返回值。

public class MainActivity extends Activity {

    private TextView textView1;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        System.out.println("oncreate...");
        textView1.findViewById(R.id.textView1);
        findViewById(R.id.button1).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                Intent intent=new Intent(MainActivity.this, activity2.class);
                intent.putExtra("txt", "hello world");
                startActivityForResult(intent, 100);

            }
        });

    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==100)
        {
            if(resultCode==1)
            {
             String name=getIntent().getStringExtra("name");
              textView1.setText(name);
            }
        }

    }
}
public class activity2 extends Activity {

    EditText etEditText;
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity2);
        etEditText=(EditText) findViewById(R.id.et);
         findViewById(R.id.btnclose).setOnClickListener(new OnClickListener() {

                     public void onClick(View v) {

                Intent intent=new Intent();
                String txtString=etEditText.getText().toString();
                intent.putExtra("name", txtString);
                setResult(1, intent);                finish();
            }
        });
    }

}
时间: 2024-12-24 01:57:38

两个activity之间的跳转与传值的相关文章

两个App之间的跳转 并传值

两个App之间的传值最主要的是方法是 Intent intent = getPackageManager().getLaunchIntentForPackage("com.example.app2");其他的传值用Intent完成就行 与activity之间的传值类似 (还可以自定义activity的权限) APP1: package com.example.app1; import android.content.Intent; import android.support.v7.a

android学习——实现两个activity之间的跳转

首先在第一个activity中创建一个按钮,id为button 然后在第一个activity的代码中创建监听器实现跳转,主activity代码如下: public class FirstActivity extends AppCompatActivity { //声明一个button按钮(不需要和实际按钮同名) Button bt1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(sav

android开发中,两个按下手机实体返回键,两个Activity反复来回跳转的问题

android开发中,对于用intent实现跳转的Ativity,有时候按下手机的返回键时,两个Activity之间会多次相互跳转,始终退出不了程序的情况.这是由于从Activity  A跳转到Activity  B时,A被压入Activity栈中:当从B返回时,默认又重新创建了一个Activity A对象,这样一来就有了多个Activity A对象.所以造成了无法退出情况. 解决办法是:在AndroidManifest.xml文件中找到Activity A项,在其属性中加入  android:

Android Bundle类,通过bundle实现在两个activity之间的通讯

根据google官方的文档(http://developer.android.com/reference/android/os/Bundle.html) Bundle类是一个key-value对,“A mapping from String values to various Parcelable types.” 类继承关系: java.lang.Object     android.os.Bundle Bundle类是一个final类:public final classBundleexten

Android activity之间的跳转和数据传递

1.Activity之间的跳转 并且 传递数据 A Activity进行的操作 Intent intent = new Intent(context, B.class); intent.putExtra("tn",tn); intent.putExtra("payMode",payMode); context.startActivity(intent); B activity接收数据 protected void onCreate(Bundle savedInsta

实现android activity之间的跳转

android程序一般不会只有一个activity,会碰到activity之间的跳转.以下是使用Intent做应用程序内部的activity做跳转.比如,应用程序第一个activity是: 点击“下一步”按钮后: 这需要写两个Activity类.第一个是:MainActivity 1 package com.easymorse; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.o

杂记之activity之间的跳转

代码结构图 manifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.com.chenzheng_java" android:versionCode="1" android:versi

两个activity之间怎么传递ArrayList&lt;HashMap&lt;String, Object&gt;&gt;

问题:两个activity之间怎么传递ArrayList<HashMap<String, Object>>,比如在跳转后的页面要得到构造器数据,可是在跳转后页面构造数据的话可能就会效率太慢导致页面跳转的时候出现黑屏现象,这样的话我们就会想在跳转前页面先得到数据,然后将ArrayList<HashMap<String, Object>>类型的数据传到另一个activity在构造适配器这样就不会出现因初始化页面时间太久而出现的黑屏现象了.但是问题出现了,怎么传递

Android Activity之间的跳转

Activity之间的跳转需要用到Intent(意图)组件,通过Intent可以开启新的Activity实现界面跳转功能. Intent被称为意图,是程序中各组件进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递.根据开启目标组件的方式不同,Intent被分为显式意图和隐式意图两种类型. 显式意图: 显式意图可以直接通过名称开启指定的目标组件,通过其构造方法Intent(Context packageContext , Class<?> cls)来实现