首页 > 代码库 > 两个activity之间的跳转与传值
两个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(); } }); } }
两个activity之间的跳转与传值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。