美文网首页
Activity间的数据传递

Activity间的数据传递

作者: 琳媚儿 | 来源:发表于2019-11-01 13:39 被阅读0次

1.Activity的概念与Activity的生命周期图

18364230.jpg

2.Activity的创建流程:

48768883.png

3.Activity间的数据传递:

7185831.png

4.多个Activity间的交互(后一个传回给前一个)

67124491.png

实例:

public class IntentMainActivity extends AppCompatActivity {
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_intent_main);
        button=findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(IntentMainActivity.this,Main2Activity.class);
                startActivityForResult(intent,111);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode==111){
            Bundle bundle=data.getExtras();
            int imageid=bundle.getInt("imageid");
            //获取布局文件中的imageView组件
            ImageView imageView=findViewById(R.id.image);
            imageView.setImageResource(imageid);
        }
    }
}

activity_intent.xml:

 <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20dp"
        android:text="选择你喜欢的APP图标" />

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/button"
        android:text="选择图标"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

Main2Activity.java

public class Main2Activity extends AppCompatActivity {
    public int[] images=new int[]{
            R.mipmap.page1,
            R.mipmap.page2,
            R.mipmap.page3,
            R.mipmap.page4,
            R.mipmap.page5
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        GridView gridView=findViewById(R.id.gridView);
        //给网格布局设置适配器
        BaseAdapter baseAdapter=new BaseAdapter() {
            @Override
            public int getCount() {
                //获得数量
                return images.length;
            }

            @Override
            public Object getItem(int position) {
                //获得当前选项
                return position;
            }

            @Override
            public long getItemId(int position) {
                //获得当前选择对应的id
                return position;
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                ImageView imageView;
                if (convertView==null){
                    imageView=new ImageView(Main2Activity.this);
                    //设置图片的宽高
                    imageView.setAdjustViewBounds(true);
                    imageView.setMaxHeight(200);
                    imageView.setMaxWidth(200);
                    imageView.setPadding(5,5,5,5);
                }else
                    imageView= (ImageView) convertView;
                    imageView.setImageResource(images[position]);

                return imageView;
            }
        };
        gridView.setAdapter(baseAdapter);
        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent=getIntent();
                Bundle bundle=new Bundle();
                bundle.putInt("imageid",images[position]);
                intent.putExtras(bundle);
                setResult(111,intent);
                finish();
            }
        });
    }
}

网格布局:

<GridView
        android:id="@+id/gridView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="10px"
        android:numColumns="2"></GridView>
db23ee6138b7ae6b01b80fb723fedf4.jpg 906adcdf5b290ead8075aa2e8c4fa3f.jpg 8c00d3d00e7acc1225cae8ceb2cda2e.jpg

相关文章

网友评论

      本文标题:Activity间的数据传递

      本文链接:https://www.haomeiwen.com/subject/bnlfbctx.html