`

GridView的分页滑动显示实现跳转Activity

 
阅读更多

首先定义一个实现GridView显示的图片页面,将所有要跳转的图片分成三页显示

 

MainManagerActivity

package com.hwtt.android.sellmanager.ui;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;

import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;

import android.content.Intent;
import android.content.SharedPreferences;
import android.location.LocationManager;
import android.os.Bundle;
import android.provider.Settings;
import android.support.v4.view.ViewPager;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;

import com.hwtt.android.sellmanager.adapter.MainGridViewAdapter;
import com.hwtt.android.sellmanager.adapter.MainPagerAdapter;
import com.hwtt.android.sellmanager.bean.ItemInfo;
import com.hwtt.android.sellmanager.utils.HttpUtil;

public class MainManagerActivity extends BaseReceiverActivity {
	private SharedPreferences sp1;
	GridView gridView;
	ViewPager pager;
	Context context = MainManagerActivity.this;
	MainPagerAdapter adapter;
	Class<?> mActivities1[] = { AttendanceManagerActivity.class,
			GoodsSalesManagerActivity.class, GoodsManagerActivity.class,
			TaskManagerActivity.class, NoticeActivity.class,
			PepoleManagerActivity.class };
	Class<?> mActivities2[] = { CustomerActivity.class,
			SystemSetActivity.class, InquireActivity.class,
			NetWorkActivity.class, MessageActivity.class,
			AddressBookActivity.class };
	Class<?> mActivities3[] = { ContactActivity.class,SMSMessageActivity.class };

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// requestWindowFeature(Window.FEATURE_NO_TITLE);

		
		setContentView(R.layout.sellmainpage);
		sp1 = this
				.getSharedPreferences("userInfo", Context.MODE_WORLD_READABLE);
		init();
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		pager.setCurrentItem(requestCode);

	}

	void init() {
		pager = (ViewPager) findViewById(R.id.vPager);
		ArrayList<View> list = new ArrayList<View>();
		LayoutInflater layout = getLayoutInflater();
		View view1 = layout.inflate(R.layout.lay1, null);
		View view2 = layout.inflate(R.layout.lay2, null);
		View view3 = layout.inflate(R.layout.lay3, null);
		GridView gridview1 = (GridView) view1.findViewById(R.id.lay1_grid_view);
		GridView gridview2 = (GridView) view2.findViewById(R.id.lay2_grid_view);
		GridView gridview3 = (GridView) view3.findViewById(R.id.lay3_grid_view);
		MainGridViewAdapter gridAdapter1 = new MainGridViewAdapter(getList(1),
				context);
		MainGridViewAdapter gridAdapter2 = new MainGridViewAdapter(getList(2),
				context);
		MainGridViewAdapter gridAdapter3 = new MainGridViewAdapter(getList(3),
				context);
		gridview1.setAdapter(gridAdapter1);
		gridview2.setAdapter(gridAdapter2);
		gridview3.setAdapter(gridAdapter3);
		list.add(view1);
		list.add(view2);
		list.add(view3);
		MainPagerAdapter adapter = new MainPagerAdapter(list);
		pager.setAdapter(adapter);
	 gridview1.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				onListItemClick(arg2, 1);
			}
		});
		gridview2.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				onListItemClick(arg2, 2);
			}
		});
		gridview3.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				onListItemClick(arg2, 3);
			}
		});
	}

	void onListItemClick(int index, int page) {
		if (page == 1) {
			if (index < 0 || index >= mActivities1.length)
				return;
			Intent intent = new Intent(context, mActivities1[index]);
			startActivityForResult(intent, page - 1);

			// this.startActivity(intent);
		} else if (page == 2) {
			if (index < 0 || index >= mActivities2.length)
				return;
			Intent intent = new Intent(context, mActivities2[index]);
			startActivityForResult(intent, page - 1);
		} else {
			if (index < 0 || index >= mActivities3.length) {
				return;
			} else if (index == 0) {
				Intent intent = new Intent(context, mActivities3[index]);
				startActivityForResult(intent, page - 1);
			} else if (index == 1) {
				Intent intent = new Intent(Intent.ACTION_VIEW);
				intent.putExtra("address", " ");
				intent.putExtra("sms_body", " ");
				intent.setType("vnd.android-dir/mms-sms");
				startActivity(intent);
			}
		}
		int version = Integer.valueOf(android.os.Build.VERSION.SDK);
		if (version >= 5) {
			overridePendingTransition(R.anim.fade, R.anim.hold);
			//滑动分页的形式
			// overridePendingTransition(R.anim.alpha_rotate,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.alpha_scale_rotate,
			// R.anim.my_alpha_action);
			// overridePendingTransition(
			// R.anim.alpha_scale_translate_rotate,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.alpha_scale_translate,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.alpha_scale,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.alpha_translate_rotate,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.alpha_translate,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.my_rotate_action,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.my_scale_action,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.my_translate_action,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.myanimation_simple,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.myown_design,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.scale_rotate,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.scale_translate_rotate,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.scale_translate,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.translate_rotate,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.hyperspace_in,
			// R.anim.hyperspace_out);
			// overridePendingTransition(R.anim.shake,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.push_left_in,
			// R.anim.push_left_out);
			// overridePendingTransition(R.anim.push_up_in,
			// R.anim.push_up_out);
			// overridePendingTransition(R.anim.slide_left,
			// R.anim.slide_right);
			// overridePendingTransition(R.anim.slide_top_to_bottom,
			// R.anim.my_alpha_action);
			// overridePendingTransition(R.anim.wave_scale,
			// R.anim.my_alpha_action);
		}
	}

	protected void onStart() {
		super.onStart();

	}

	protected void dialog() {
		AlertDialog.Builder builder = new Builder(context);
		builder.setMessage("确定要退出吗?");
		builder.setTitle("提示");
		builder.setPositiveButton("确认",
				new android.content.DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int which) {
						dialog.dismiss();
						// update zongshiwei close all activity by
						// broadcastReceiver
						myExit();
						// finish();
						String path =getResources().getString(R.string.exitPPTUrl);
						List<NameValuePair> list = new ArrayList<NameValuePair>();

						NameValuePair value1 = new BasicNameValuePair(
								"username", sp1.getString("USER_NAME", ""));

						list.add(value1);
						HttpUtil httpUtil = new HttpUtil();

						String result = httpUtil.getMsgFromServer(path, list);
					}
				});
		builder.setNegativeButton("取消",
				new android.content.DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int which) {
						dialog.dismiss();
					}
				});
		builder.create().show();
	}

	protected void myExit() {
		Intent intent = new Intent();
		intent.setAction("ExitApp");
		this.sendBroadcast(intent);
		super.finish();
	}

	public boolean onKeyDown(int keyCode, android.view.KeyEvent event) {
		if (KeyEvent.KEYCODE_BACK == keyCode && event.getRepeatCount() == 0)
			dialog();
		return true;
	};

	ArrayList<ItemInfo> getList(int i) {
		ArrayList<ItemInfo> list1 = new ArrayList<ItemInfo>();
		ArrayList<ItemInfo> list2 = new ArrayList<ItemInfo>();
		ArrayList<ItemInfo> list3 = new ArrayList<ItemInfo>();
		ItemInfo info1 = new ItemInfo();
		info1.setItem_img(R.drawable.advancedance_icon);
		info1.setItem_name("考勤管理");
		ItemInfo info2 = new ItemInfo();
		info2.setItem_img(R.drawable.sale_manager);
		info2.setItem_name("销量管理");
		ItemInfo info3 = new ItemInfo();
		info3.setItem_img(R.drawable.goods_mana);
		info3.setItem_name("货品管理");
		ItemInfo info4 = new ItemInfo();
		info4.setItem_img(R.drawable.task_mana);
		info4.setItem_name("任务管理");
		ItemInfo info5 = new ItemInfo();
		info5.setItem_img(R.drawable.ico_msg_notice);
		info5.setItem_name("通知公告");
		ItemInfo info6 = new ItemInfo();
		info6.setItem_img(R.drawable.pepole_locat);
		info6.setItem_name("人员管理");
		ItemInfo info7 = new ItemInfo();
		info7.setItem_img(R.drawable.kehuguanli);
		info7.setItem_name("客户管理");
		ItemInfo info8 = new ItemInfo();
		info8.setItem_img(R.drawable.systemset);
		info8.setItem_name("系统设置");
		ItemInfo info9 = new ItemInfo();
		info9.setItem_img(R.drawable.cru);
		info9.setItem_name("查询统计");
		ItemInfo info10 = new ItemInfo();
		info10.setItem_img(R.drawable.network_manage);
		info10.setItem_name("网点巡视");
		ItemInfo info11 = new ItemInfo();
		info11.setItem_img(R.drawable.upload_message);
		info11.setItem_name("信息上报");
		ItemInfo info12 = new ItemInfo();
		info12.setItem_img(R.drawable.address_book);
		info12.setItem_name("公司通讯录");
		ItemInfo info13 = new ItemInfo();
		info13.setItem_img(R.drawable.call);
		info13.setItem_name("多人会话");
		ItemInfo info14 = new ItemInfo();
		info14.setItem_img(R.drawable.sms);
		info14.setItem_name("短信群发");
		list1.add(info1);
		list1.add(info2);
		list1.add(info3);
		list1.add(info4);
		list1.add(info5);
		list1.add(info6);
		list2.add(info7);
		list2.add(info8);
		list2.add(info9);
		list2.add(info10);
		list2.add(info11);
		list2.add(info12);
		list3.add(info13);
		list3.add(info14);
		if (i == 1)
			return list1;
		else if (i == 2)
			return list2;
		else
			return list3;
	}

}

 

定义填充页面的图片跟图片下边的文字MainGridViewAdapter

 

 

package com.hwtt.android.sellmanager.adapter;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.hwtt.android.sellmanager.bean.ItemInfo;
import com.hwtt.android.sellmanager.ui.R;

public class MainGridViewAdapter extends BaseAdapter {
	ArrayList<ItemInfo> list;
	Context context;
 
	public MainGridViewAdapter(ArrayList<ItemInfo> list,Context context)
	{
		this.list=list;
		this.context=context;
	}
	public int getCount() {
		// TODO Auto-generated method stub
		return list.size();
	}

	@Override
	public Object getItem(int position) {
		return list.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		if(convertView==null)
		{
			LayoutInflater layout=LayoutInflater.from(context);
			convertView=layout.inflate(R.layout.main_page_item, null);
		}
		ImageView itemImg=(ImageView)convertView.findViewById(R.id.item_img);
		TextView itemName=(TextView)convertView.findViewById(R.id.item_tv);
		itemImg.setImageResource(list.get(position).getItem_img());
		itemName.setText(list.get(position).getItem_name());
		return convertView;
	}
}

 

然后定义分页的MainPagerAdapter

 

package com.hwtt.android.sellmanager.adapter;

import java.util.ArrayList;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.Button;

import com.hwtt.android.sellmanager.ui.R;

public class MainPagerAdapter extends PagerAdapter{

	ArrayList<View> list;
	public MainPagerAdapter (ArrayList<View> list) 
	{
		this.list=list;
	}
	public void destroyItem(View arg0, int arg1, Object arg2) {
		((ViewPager) arg0).removeView(list.get(arg1));
	}

	@Override
	public void finishUpdate(View arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public int getCount() {
		return list.size();
	}

	@Override
	public Object instantiateItem(View arg0, int arg1) {
		((ViewPager) arg0).addView(list.get(arg1),0);
		return list.get(arg1);
	}

	@Override
	public boolean isViewFromObject(View arg0, Object arg1) {
		// TODO Auto-generated method stub
		return  arg0==(arg1);
	}

	@Override
	public void restoreState(Parcelable arg0, ClassLoader arg1) {
		
	}

	@Override
	public Parcelable saveState() {
		return null;
	}

	@Override
	public void startUpdate(View arg0) {
		
	}

	
}

 

然后定义填充图片与文字的XML     main_page_item

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >
<ImageView android:id="@+id/item_img"
    android:layout_width="80dp"
    android:layout_height="70dp"
    android:layout_marginTop="15dp"
    android:layout_marginLeft="30dp"
    android:layout_marginRight="30dp"
    android:scaleType="fitXY"/>
<TextView android:id="@+id/item_tv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/item_img"
    android:maxLines="2"
    android:layout_alignLeft="@id/item_img"
    android:layout_alignRight="@id/item_img"
    android:gravity="center_horizontal"
    android:textSize="13sp"
    android:textColor="#000000"
   />
</RelativeLayout>

 还有就是显示GridView的布局   sellmainpage

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    
     >
       <TextView 
           android:id="@+id/main_tv_hint"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:textColor="#000000"
        android:gravity="center"
        android:layout_marginTop="30dp"
        android:textSize="25sp"
        android:text="移动销售管家"/>
       <TextView android:id="@+id/weather_tv"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_alignParentRight="true"/>
         <android.support.v4.view.ViewPager
        android:id="@+id/vPager"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_below="@id/main_tv_hint"
        android:layout_gravity="center"
        android:layout_weight="1.0"
         
        android:flipInterval="30"
        android:persistentDrawingCache="animation" />
 <!--  <GridView
        android:id="@+id/main_manager_grid_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:columnWidth="90dp"
        android:gravity="center"
        android:horizontalSpacing="10dip"
        android:layout_margin="15dip"
        android:layout_marginTop="60dp"
        android:numColumns="3"
        android:verticalSpacing="20dip" /> -->
</RelativeLayout>

 

最后定义一个填充GridView图片与文字的一个bean  ItemInfo.java

package com.hwtt.android.sellmanager.bean;

public class ItemInfo {

	int item_img;
	String item_name;
	public int getItem_img() {
		return item_img;
	}
	public void setItem_img(int item_img) {
		this.item_img = item_img;
	}
	public String getItem_name() {
		return item_name;
	}
	public void setItem_name(String item_name) {
		this.item_name = item_name;
	}
	
}
  

 

 

分享到:
评论

相关推荐

    GridView的左右滑动+分页

    综上所述,实现"GridView的左右滑动+分页"涉及的关键技术包括自定义ViewGroup或利用现有库实现滑动,使用分页加载策略和监听滚动事件,以及与网络通信和数据解析。这一系列操作需要开发者对Android SDK、UI组件和...

    android gridview分页和滑动效果

    本教程将详细讲解如何实现GridView的分页和滑动效果。 首先,我们需要了解GridView的基本用法。GridView继承自AbsListView,通过设置其`android:numColumns`属性来指定每行显示的列数。数据通常是通过Adapter来绑定...

    android Gridview分页实现

    本篇文章将详细讲解如何在Android中利用GridView实现分页加载功能。 首先,理解GridView的基本概念。GridView是ListView的一种变体,它按照指定的列数来排列子视图。默认情况下,GridView会一次性加载所有数据,这...

    Android GridView分页显示

    本篇文章将深入探讨如何在Android中实现GridView的分页显示。 首先,理解GridView的基本原理。GridView继承自AbsListView,它会根据设定的列数自动调整每个单元格的宽度。数据通常是通过Adapter来提供,Adapter负责...

    GridView分页显示

    本教程将详细讲解如何实现一个使用GridView进行分页显示的功能,同时adapter继承自BaseAdapter。 一、GridView基础 GridView是一个可滚动的视图,它将数据项按行和列的格式排列。每个数据项都由一个View表示,这些...

    如何在gridView中控制分页显示

    首先,我们需要了解一些基本的属性及其作用,以便更好地掌握如何在GridView中实现分页显示。 ##### 表1:GridView控件分页属性 | 属性 | 描述 | |---------------|----------------------------------------------...

    【ASP.NET编程知识】asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页.docx

    GridView 分页可以通过自定义分页控件或使用 ASP.NET 提供的默认分页控件来实现。自定义分页控件可以根据需要进行调整样式和布局,而默认分页控件则提供了基本的分页功能。 GridView 分页的优点 GridView 分页可以...

    GridView分页控件(项目例子)

    在.NET 2.0时代,GridView控件就已经内置了基本的分页功能,无需依赖第三方控件就能实现数据的分页显示。 在ASP.NET中,GridView用于动态呈现来自数据库或其他数据源的数据,它能够自动生成列,并且支持排序、分页...

    Gridview连接mysql以及分页显示

    在这个场景中,我们将探讨如何将GridView与MySQL数据库连接,并实现分页显示功能。这涉及到多个知识点,包括数据库连接、SQL查询、数据绑定以及分页逻辑。 首先,我们需要创建一个数据库连接。在C#中,我们可以使用...

    C#WinformGridView分页demo.rar

    3. **分页逻辑**:实现分页涉及到计算每一页的数据量,以及根据用户的选择(如页码或每页显示的行数)跳转到相应的数据。这通常通过编程逻辑来实现,例如在页码改变时重新加载数据。 4. **事件处理**:为了响应用户...

    C#万能分页代码,GridView分页相当方便

    本文将详细介绍如何在C#中使用GridView控件实现“万能”分页,即一种通用的分页解决方案,通过编写一个分页方法,就能适应不同的数据集和显示需求。 #### 二、理解GridView与分页 **GridView**是ASP.NET中的一个...

    GridView分页整套精美样式

    本教程将深入探讨如何利用GridView实现自定义分页功能,并提供一套完整的精美样式,这些样式是通过CSS(层叠样式表)编写的,能够使数据展示更具吸引力和用户体验。 首先,我们要理解GridView的基本结构和工作原理...

    gridview分页显示手机所有应用

    在这个特定的案例中,“gridview分页显示手机所有应用”指的是如何使用GridView来分页展示手机上安装的所有应用程序的图标和名称。 首先,我们需要理解GridView的基本用法。GridView继承自AbsListView,它会将数据...

    ViewPager+GridView实现宫格横向滑动切换

    本篇将深入探讨如何利用`ViewPager`和`GridView`来实现宫格横向滑动切换的分页效果。 首先,`ViewPager`是Android SDK中的一个强大的组件,它允许用户左右滑动来切换不同的页面,通常用于实现类似Tab布局的效果。`...

    带存储过程的,GridView 分页用户控件

    6. **用户交互**:可自定义GridView的分页栏,例如,显示总页数,或者提供快速跳转到指定页的功能。 通过这样的方式,我们实现了利用存储过程和GridView分页用户控件的强大组合,使得在大量数据处理时既能保证性能...

    android左右滑动GridView

    具体实现时,可以在Activity或Fragment中添加相应的逻辑,根据用户是否已登录或密码验证结果来决定是否显示这个定制的GridView。 接下来,我们将关注实现左右滑动的关键步骤: 1. **自定义GridView**:创建一个新...

    Gridview分页

    本篇文章将深入探讨如何在C#语言的ASP.NET项目中实现GridView的分页功能,并结合SQL Server数据库进行数据检索。 首先,我们需要在.aspx页面上创建一个GridView控件,并设置其分页属性。在GridView的声明式语法中,...

    安卓Andriod源码——gridview分页效果.zip

    "安卓Andriod源码——gridview分页效果.zip"这个压缩包可能包含了一个示例项目,演示了如何在GridView中实现分页效果。以下是对这个主题的详细讲解: 1. GridView基本概念: GridView继承自AbsListView,它会将...

    GridView分页

    本篇文章将详细介绍如何在GridView控件中实现分页功能。 一、GridView分页基础 1. GridView配置 首先,我们需要在ASP.NET页面上添加一个GridView控件,并设置其`AllowPaging`属性为`true`,以启用分页功能。例如:...

    gridview分页效果

    在提供的压缩包文件中,"JavaApk源码说明.txt"可能是对一个包含分页实现的Java Android应用的源码解释,而"HorizontalGridView"可能是一个实现水平滚动的GridView的自定义控件。通过研究这些源码,我们可以深入理解...

Global site tag (gtag.js) - Google Analytics