赞
踩
Activity相当于设备上的一个屏幕,在屏幕上添加不同的组件并且进行配置,从而呈现不同的功能
1、MainActivity2.java文件
2、activity_main2.xml文件
3、上述配置好了还需要在AndroidManifest.xml文件中进行进行配置
.MainActivity2表示同一个包下,如下表示在com.example.study2这个包下,如果在com.example.study2的子包下,那么还得在前边加子包名
以上都是Android Studio提供的自动创建的功能所创建的文件,手动创建也是需要具备上述的所有条件
入口Activity:需要在在AndroidManifest.xml文件中进行进行配置,如下intent-filter标签内添加如下内容
其他Activity:相当于除了主页以外的页面,可以通过startActivity进行启动Activity
/**
* 第一个参数是上下文对象,可以是跳转页面前的Activity对象
*/
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
/**
* 启动Activity
*/
startActivity(intent);
关闭Activity只需要在Activity中调用finish();方法即可
如果关闭的Activity是从其他页面跳转过来的,那么就会跳转回去,如果关闭的是主Activity,那么就会跳转到主屏幕
Bundle相当于一个HashMap,存在key-value对,通过key进行查找对应的value
1、putXXX:是根据传递不同的数据进行设置的,如下为传递字符串
/**
* 第一个参数是当前所处的Activity的参数
* 第二个参数是要跳转的Activity
*/
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
Bundle bundle = new Bundle();
// 放入数据
bundle.putCharSequence("name", nameText);
bundle.putCharSequence("phone", phoneText);
// 填充到Intent中
intent.putExtras(bundle);
// 进行跳转Activity
startActivity(intent);
2、在跳转到的页面中通过一下进行获取数据
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String name = bundle.getString("name");
String phone = bundle.getString("phone");
1、实例应用场景如下:选择头像以后返回到原来页面就显示选中的头像
2、实现如上需求,在MainActivity.class中启动Acitivity的时候使用startActivityForResult方法并监听跳转的页面的返回值
package com.example.study2; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { // 监听返回值 @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == 0x11 && resultCode == 0x11){ Bundle bundle = data.getExtras(); int imgId = bundle.getInt("imgId"); ImageView tx = findViewById(R.id.tx); tx.setImageResource(imgId); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btnSelect = findViewById(R.id.select); // 头像选择按钮触发事件 btnSelect.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this, MainActivity2.class); /** * 第一个参数是跳转相关的intent对象 * 第二个参数是标识,自定义设置 */ startActivityForResult(intent, 0x11); } }); } }
3、在MainActivity2.class处理选择头像后的逻辑并返回结果
package com.example.study2; import androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.GridLayout; import android.widget.GridView; import android.widget.ImageView; import android.widget.TextView; public class MainActivity2 extends AppCompatActivity { int[] imgs = new int[]{R.drawable.t1, R.drawable.t2}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); GridView listImgs = findViewById(R.id.listImgs); listImgs.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { Intent intent = getIntent(); Bundle bundle = new Bundle(); bundle.putInt("imgId", imgs[i]); intent.putExtras(bundle); setResult(0x11,intent); finish(); } }); listImgs.setAdapter(new myAdapter(MainActivity2.this)); } public class myAdapter extends BaseAdapter{ Context myContext; public myAdapter(Context c){ myContext = c ; } @Override public int getCount() { return imgs.length; } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ImageView imageView = null; if(view == null){ imageView = new ImageView(myContext); imageView.setLayoutParams(new GridView.LayoutParams(100,100)); imageView.setScaleType(ImageView.ScaleType.FIT_XY); }else{ imageView = (ImageView) view; } imageView.setImageResource(imgs[i]); return imageView; } } }
4、activity_main.xml:配置显示头像按钮
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <ImageView android:id="@+id/tx" android:layout_width="match_parent" android:layout_height="400dp" ></ImageView> <Button android:id="@+id/select" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="选择头像" ></Button> </LinearLayout>
5、在activity_main2.xml:显示头像列表
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity2"> <GridView android:numColumns="3" android:id="@+id/listImgs" android:layout_width="match_parent" android:layout_height="wrap_content"> </GridView> </LinearLayout>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。