热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

GridViewWIthSubActivityDemo

GridViewWIthSubActivityDemo拥有一个sub-activity的GridView示例:显示一系列图片,点击其中之一的话ÿ

GridViewWIthSubActivityDemo

拥有一个sub-activity的GridView示例:

显示一系列图片,点击其中之一的话,在新的sub-activity中放大显示。

ImageAdapter是自定义的Adapter,继承自BaseAdapter,是GridView与待展示数据之间的桥梁。

ImageAdapter imageAdapter = new ImageAdapter(this);
GridView gridView = (GridView) findViewById(R.id.gridview);
gridView.setAdapter(imageAdapter);

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
Intent intent = new Intent(getApplicationContext(), SingleViewActivity.class);
intent.putExtra("position", position);
startActivity(intent);
} });
position参数是被点击的图片在Adapter中的位置,Intent中携带数据应该是position,而不是id。

Intent intent = getIntent();
int position = intent.getExtras().getInt("position");
ImageAdapter imageAdapter = new ImageAdapter(this);
ImageView imageView = (ImageView) findViewById(R.id.imageview);
imageView.setImageResource(imageAdapter.mImageIds[position]);
通过Intent的Extras参数传递数据,putExtras() 和 getExtras().

1 package com.example.shad_fnst.gridviewwithsubactivitydemo;
2
3 import android.app.Activity;
4 import android.content.Intent;
5 import android.support.v7.app.ActionBarActivity;
6 import android.os.Bundle;
7 import android.view.Menu;
8 import android.view.MenuItem;
9 import android.view.View;
10 import android.widget.AdapterView;
11 import android.widget.GridView;
12 import android.widget.ImageView;
13
14
15 public class MainActivity extends Activity {
16
17 @Override
18 protected void onCreate(Bundle savedInstanceState) {
19 super.onCreate(savedInstanceState);
20 setContentView(R.layout.activity_main);
21
22 ImageAdapter imageAdapter = new ImageAdapter(this);
23 GridView gridView = (GridView) findViewById(R.id.gridview);
24 gridView.setAdapter(imageAdapter);
25 gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
26 @Override
27 public void onItemClick(AdapterView parent, View view, int position, long id) {
28 Intent intent = new Intent(getApplicationContext(), SingleViewActivity.class);
29 intent.putExtra("position", position);
30 startActivity(intent);
31 }
32 });
33 }
34
35 @Override
36 public boolean onCreateOptionsMenu(Menu menu) {
37 // Inflate the menu; this adds items to the action bar if it is present.
38 getMenuInflater().inflate(R.menu.menu_main, menu);
39 return true;
40 }
41
42 @Override
43 public boolean onOptionsItemSelected(MenuItem item) {
44 // Handle action bar item clicks here. The action bar will
45 // automatically handle clicks on the Home/Up button, so long
46 // as you specify a parent activity in AndroidManifest.xml.
47 int id = item.getItemId();
48
49 //noinspection SimplifiableIfStatement
50 if (id == R.id.action_settings) {
51 return true;
52 }
53
54 return super.onOptionsItemSelected(item);
55 }
56 }

MainActivity.java

1 package com.example.shad_fnst.gridviewwithsubactivitydemo;
2
3 import android.app.Activity;
4 import android.content.Intent;
5 import android.support.v7.app.ActionBarActivity;
6 import android.os.Bundle;
7 import android.view.Menu;
8 import android.view.MenuItem;
9 import android.widget.ImageView;
10
11
12 public class SingleViewActivity extends Activity {
13
14 @Override
15 protected void onCreate(Bundle savedInstanceState) {
16 super.onCreate(savedInstanceState);
17 setContentView(R.layout.activity_single_view);
18
19 Intent intent = getIntent();
20 int position = intent.getExtras().getInt("position");
21
22 ImageAdapter imageAdapter = new ImageAdapter(this);
23 ImageView imageView = (ImageView) findViewById(R.id.imageview);
24 imageView.setImageResource(imageAdapter.mImageIds[position]);
25 }
26
27 @Override
28 public boolean onCreateOptionsMenu(Menu menu) {
29 // Inflate the menu; this adds items to the action bar if it is present.
30 getMenuInflater().inflate(R.menu.menu_single_view, menu);
31 return true;
32 }
33
34 @Override
35 public boolean onOptionsItemSelected(MenuItem item) {
36 // Handle action bar item clicks here. The action bar will
37 // automatically handle clicks on the Home/Up button, so long
38 // as you specify a parent activity in AndroidManifest.xml.
39 int id = item.getItemId();
40
41 //noinspection SimplifiableIfStatement
42 if (id == R.id.action_settings) {
43 return true;
44 }
45
46 return super.onOptionsItemSelected(item);
47 }
48 }

SingeViewActivity.java

1 package com.example.shad_fnst.gridviewwithsubactivitydemo;
2
3 import android.content.Context;
4 import android.view.View;
5 import android.view.ViewGroup;
6 import android.widget.BaseAdapter;
7 import android.widget.GridView;
8 import android.widget.ImageView;
9
10 /**
11 * Created by shad-fnst on 2015/08/04.
12 */
13 public class ImageAdapter extends BaseAdapter{
14 private Context mContext;
15
16 public Integer[] mImageIds = {
17 R.drawable.sample0, R.drawable.sample1,
18 R.drawable.sample2, R.drawable.sample3,
19 R.drawable.sample4, R.drawable.sample5,
20 R.drawable.sample6, R.drawable.sample7,
21 R.drawable.sample0, R.drawable.sample1,
22 R.drawable.sample2, R.drawable.sample3,
23 R.drawable.sample4, R.drawable.sample5,
24 R.drawable.sample6, R.drawable.sample7,
25 R.drawable.sample0, R.drawable.sample1,
26 R.drawable.sample2, R.drawable.sample3,
27 R.drawable.sample4, R.drawable.sample5,
28 R.drawable.sample6, R.drawable.sample7
29 };
30
31 public ImageAdapter(Context context){
32 mContext = context;
33 }
34
35 @Override
36 public int getCount() {
37 return mImageIds.length;
38 }
39
40 @Override
41 public View getView(int position, View convertView, ViewGroup parent) {
42 ImageView imageView;
43 if(convertView == null){
44 imageView = new ImageView(mContext);
45 imageView.setLayoutParams(new GridView.LayoutParams(115, 115));
46 imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
47 imageView.setPadding(8,8,8,8);
48 }else{
49 imageView = (ImageView) convertView;
50 }
51
52 imageView.setImageResource(mImageIds[position]);
53 return imageView;
54 }
55
56 @Override
57 public long getItemId(int position) {
58 return 0;
59 }
60
61 @Override
62 public Object getItem(int position) {
63 return null;
64 }
65 }

ImageAdapter.java

1 2 xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
3 android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
4 android:paddingRight="@dimen/activity_horizontal_margin"
5 android:paddingTop="@dimen/activity_vertical_margin"
6 android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
7
8 9 android:layout_width="match_parent"
10 android:layout_height="match_parent"
11 android:columnWidth="120dp"
12 android:horizontalSpacing="10dp"
13 android:verticalSpacing="10dp"
14 android:padding="10dp"
15 android:numColumns="auto_fit"
16 android:stretchMode="columnWidth">
17

18
19

activity_main.xml

1 xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android&#61;"http://schemas.android.com/apk/res/android"
3 android:layout_width&#61;"match_parent"
4 android:layout_height&#61;"match_parent"
5 android:orientation&#61;"vertical">
6
7 <ImageView
8 android:layout_width&#61;"match_parent"
9 android:layout_height&#61;"match_parent"
10 android:id&#61;"&#64;&#43;id/imageview"/>
11
12 LinearLayout>

activity_single_view.xml

1 xml version&#61;"1.0" encoding&#61;"utf-8"?>
2 <manifest xmlns:android&#61;"http://schemas.android.com/apk/res/android"
3 package&#61;"com.example.shad_fnst.gridviewwithsubactivitydemo" >
4
5 <application
6 android:allowBackup&#61;"true"
7 android:icon&#61;"&#64;mipmap/ic_launcher"
8 android:label&#61;"&#64;string/app_name"
9 android:theme&#61;"&#64;style/AppTheme" >
10 <activity
11 android:name&#61;".MainActivity"
12 android:label&#61;"&#64;string/app_name" >
13 <intent-filter>
14 <action android:name&#61;"android.intent.action.MAIN" />
15
16 <category android:name&#61;"android.intent.category.LAUNCHER" />
17 intent-filter>
18 activity>
19 <activity
20 android:name&#61;".SingleViewActivity"
21 android:label&#61;"&#64;string/title_activity_single_view" >
22 activity>
23 application>
24
25 manifest>

AndroidManifest.xml

 

转:https://www.cnblogs.com/hello-sandy/p/4702458.html



推荐阅读
author-avatar
静默的温柔结成思念
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有