MAINACTIIVITY

本文介绍了一个Android应用程序的实现案例,该应用集成了多个功能模块,包括使用ViewPager和Fragment实现页面切换、通过Umeng SDK实现社交媒体分享功能、以及使用QQ进行第三方登录验证等。文中展示了具体的代码实现细节,对于开发者来说具有很好的参考价值。
package com.example.month33;

import java.util.Map;
import java.util.Set;

import vo.QQ;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.utils.Log;
import com.viewpagerindicator.TabPageIndicator;

import android.content.Intent;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends FragmentActivity {

    /**
     * Tab标题
     */
    private static final String[] TITLE = new String[] { "头条", "房产", "另一面", "女人",
                                                        "财经", "数码", "情感", "科技" };

    final SHARE_MEDIA[] displaylist = new SHARE_MEDIA[] { SHARE_MEDIA.WEIXIN,
            SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.SINA, SHARE_MEDIA.QQ,
            SHARE_MEDIA.QZONE, SHARE_MEDIA.DOUBAN };
    private UMShareAPI mShareAPI;

    private ImageView img;

    private TextView qqname;
    private QQ qq2;

    private SHARE_MEDIA platform;

    private ImageView leftmenu_img;

    private TextView leftmenu_tvname;
    private TextView san;

    private ImageView leftmenu_img2;
    private QQ qq1;
    private Handler handler = new Handler() {
    

        public void handleMessage(android.os.Message msg) {

            qq1 = (QQ) msg.obj;
            Log.e(qq1.toString());
            san.setText(qq1.getScreen_name());
            ImageLoader.getInstance().displayImage(qq1.getProfile_image_url(), leftmenu_img2);
        };
    };
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        initviewpager();
        
     
        
        
     //初始化侧滑
        initslidingmenu();

        
    }


    //初始化
    private void initviewpager() {
        //ViewPager的adapter
        FragmentPagerAdapter adapter = new TabPageIndicatorAdapter(getSupportFragmentManager());
        ViewPager pager = (ViewPager)findViewById(R.id.pager);
        pager.setAdapter(adapter);

        //实例化TabPageIndicator然后设置ViewPager与之关联
        TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator);
        //为他设置vp
        indicator.setViewPager(pager);
        //如果我们要对ViewPager设置监听,用indicator设置就行了
        indicator.setOnPageChangeListener(new OnPageChangeListener() {
            
            @Override
            public void onPageSelected(int arg0) {
                Toast.makeText(getApplicationContext(), TITLE[arg0], Toast.LENGTH_SHORT).show();
            }
            
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                
            }
            
            @Override
            public void onPageScrollStateChanged(int arg0) {
                
            }
        });
    }

    /**
     * 分享
     */
    public void share(View v) {

        UMImage image = new UMImage(MainActivity.this,
                BitmapFactory.decodeResource(getResources(), R.drawable.boy_3));

        new ShareAction(this).setDisplayList(displaylist).withText("呵呵")
                .withTitle("title").withTargetUrl("http://www.baidu.com")
                .withMedia(image).setListenerList(new UMShareListener() {
                    @Override
                    public void onResult(SHARE_MEDIA platform) {
                        Toast.makeText(MainActivity.this, platform + " 分享成功啦",
                                Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onError(SHARE_MEDIA platform, Throwable t) {
                        Toast.makeText(MainActivity.this, platform + " 分享失败啦",
                                Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onCancel(SHARE_MEDIA platform) {
                        Toast.makeText(MainActivity.this, platform + " 分享取消了",
                                Toast.LENGTH_SHORT).show();
                    }
                }).open();
    }


    
    /**
     * 登录
     *
     * @param v
     */
    public void login(View v) {

        // 获取UMShareAPI
        mShareAPI = UMShareAPI.get(this);
        // 使用哪个平台账号登录
        SHARE_MEDIA platform = SHARE_MEDIA.QQ;
        
        
        mShareAPI.doOauthVerify(this, platform, new UMAuthListener() {
            @Override
            public void onComplete(SHARE_MEDIA platform, int action,
                    Map<String, String> data) {
                
                Log.e("data============",data.toString());
                
                mShareAPI.getPlatformInfo(MainActivity.this, platform, new UMAuthListener() {
                    

                    @Override
                    public void onComplete(SHARE_MEDIA platform, int action,
                            Map<String, String> map) {
                        
                        Log.e("map",map.toString());
                        Set<String> set = map.keySet();
                        qq2 = new QQ();
                        for (String key : set) {
                            if("screen_name".equals(key)){
                                Log.d("zzz", key);
                                qq2.setScreen_name(map.get(key));
                                Log.e("qq名字",qq2.getScreen_name());
                                
                                
                            }else if("profile_image_url".equals(key)){
                                Log.d("zzz", key);
                                qq2.setProfile_image_url(map.get(key));
                                Log.e("qq名字",qq2.getProfile_image_url());
                                
                            }
                        }
                        
                        Message msg=Message.obtain();
                        msg.obj=qq2;
                        handler.sendMessage(msg);
                        
                        //登录成功进行跳转
//                        Intent intent = new Intent(MainActivity.this,ShowActivity.class);
//                        intent.putExtra("qq", qq);
//                        startActivity(intent);
                        Toast.makeText(getApplicationContext(), "Authorize succeed",
                                Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onError(SHARE_MEDIA platform, int action, Throwable t) {
                        Toast.makeText(getApplicationContext(), "Authorize fail",
                                Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onCancel(SHARE_MEDIA platform, int action) {
                        Toast.makeText(getApplicationContext(), "Authorize cancel",
                                Toast.LENGTH_SHORT).show();
                    }
                }
                
            );

            
            }

            @Override
            public void onError(SHARE_MEDIA platform, int action, Throwable t) {
                Toast.makeText(getApplicationContext(), "Authorize fail",
                        Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onCancel(SHARE_MEDIA platform, int action) {
                Toast.makeText(getApplicationContext(), "Authorize cancel",
                        Toast.LENGTH_SHORT).show();
            }
        });

    }
    


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
        mShareAPI.onActivityResult(requestCode, resultCode, data);
    }
    
    

    private void initslidingmenu() {
        // configure the SlidingMenu
        SlidingMenu menu = new SlidingMenu(this);
        menu.setMode(SlidingMenu.LEFT);
        // 设置触摸屏幕的模式
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        menu.setShadowWidthRes(R.dimen.shadow_width);
        menu.setShadowDrawable(R.drawable.shadow);

        // 设置滑动菜单视图的宽度
        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        // 设置渐入渐出效果的值
        menu.setFadeDegree(0.35f);
        /**
         * SLIDING_WINDOW will include the Title/ActionBar in the content
         * section of the SlidingMenu, while SLIDING_CONTENT does not.
         */
        //把滑动菜单添加进所有的Activity中,可选值SLIDING_CONTENT , SLIDING_WINDOW
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        //为侧滑菜单设置布局
        View v=View.inflate(this, R.layout.leftmenu, null);
        menu.setMenu( v);
        
        san = (TextView) v.findViewById(R.id.san);
        leftmenu_img2 = (ImageView) v.findViewById(R.id.leftmenu_img);
    }

    
    /**
     * ViewPager适配器
     * @author len
     *
     */
    class TabPageIndicatorAdapter extends FragmentPagerAdapter {
        public TabPageIndicatorAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            //新建一个Fragment来展示ViewPager item的内容,并传递参数
            Fragment fragment = new ItemFragment();  
            Bundle args = new Bundle();  
            args.putString("arg", TITLE[position]);  
            fragment.setArguments(args);  
            
            return fragment;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return TITLE[position % TITLE.length];
        }

        @Override
        public int getCount() {
            return TITLE.length;
        }
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值