package cn.edu.njupt.allgo.activity; import java.util.ArrayList; import java.util.List; import com.lidroid.xutils.DbUtils; import com.lidroid.xutils.db.sqlite.Selector; import com.lidroid.xutils.exception.DbException; import cn.edu.njupt.allgo.R; import cn.edu.njupt.allgo.adapter.WelcomeViewPagerAdapter; import cn.edu.njupt.allgo.fragment.LoginDialogFRAGMENT; import cn.edu.njupt.allgo.logic.LoginLogic; import cn.edu.njupt.allgo.logic.RefreshInterFace; import cn.edu.njupt.allgo.logicImpl.LoginLogicImpl; import cn.edu.njupt.allgo.vo.EventVo; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.widget.LinearLayout; import android.widget.Toast; public class WelcomeACTIVITY extends BaseActivity implements OnClickListener,OnPageChangeListener , RefreshInterFace{ //记录当前选中位置 private int currentIndex; //底部小点的图片 private ImageView[] points; //引导图片资源 private static final int[] pics = {R.drawable.guide1,R.drawable.guide2}; private ArrayList<View> views; private ViewPager viewPager; private WelcomeViewPagerAdapter vpAdapter; private Button button_welcome_login; private Button button_welcome_register; private ProgressDialog progressDialog; private LoginLogic loginLogic ; @Override protected void onCreate(Bundle savedInstanceState) { // TODO 自动生成的方法存根 super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); Log.i("Activity"," onCreate() ==> WelcomeACTIVITY"); loginLogic = new LoginLogicImpl(this , this); initView(); } @Override protected void onResume() { // TODO 自动生成的方法存根 super.onResume(); Log.i("Activity"," onResume() ==> WelcomeACTIVITY"); Intent intent = getIntent(); if(intent.getStringExtra("login") != null){ showLogin(intent.getStringExtra("login")); } } private void showLogin(String result){ LoginDialogFRAGMENT newFragment = LoginDialogFRAGMENT.newInstance("login"); newFragment.show(getSupportFragmentManager(), "dialog"); newFragment.setName(result); } /** * 初始化组件 */ private void initView() { //实例化ArrayList对象 views = new ArrayList<View>(); //实例化ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager_welcome); //实例化ViewPager适配器 vpAdapter = new WelcomeViewPagerAdapter(views); button_welcome_login = (Button)findViewById(R.id.button_welcome_login); button_welcome_register = (Button)findViewById(R.id.button_welcome_register); button_welcome_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showLoginDialog(); } }); button_welcome_register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showRegisterDialog(); } }); initData(); } /** * 初始化数据 */ private void initData(){ //定义一个布局并设置参数 LinearLayout.LayoutParams mParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); //初始化引导图片列表 ImageView iv0 = new ImageView(this); iv0.setScaleType(ScaleType.FIT_CENTER); iv0.setLayoutParams(mParams); iv0.setImageResource(pics[0]); views.add(iv0); ImageView iv1 = new ImageView(this); iv1.setScaleType(ScaleType.FIT_CENTER); iv1.setLayoutParams(mParams); iv1.setImageResource(pics[1]); views.add(iv1); //设置数据 viewPager.setAdapter(vpAdapter); //设置监听 viewPager.setOnPageChangeListener(this); //初始化底部小点 initPoint(); } /** * 初始化底部小点 */ private void initPoint(){ LinearLayout linearLayout = (LinearLayout) findViewById(R.id.LinearLayout_welcome_point); points = new ImageView[pics.length]; //循环取得小点图片 for (int i = 0; i < pics.length; i++) { //得到一个LinearLayout下面的每一个子元素 points[i] = (ImageView) linearLayout.getChildAt(i); //默认都设为灰色 points[i].setEnabled(true); //给每个小点设置监听 points[i].setOnClickListener(this); //设置位置tag,方便取出与当前位置对应 points[i].setTag(i); } //设置当面默认的位置 currentIndex = 0; //设置为白色,即选中状态 points[currentIndex].setEnabled(false); } /** * 当滑动状态改变时调用 */ @Override public void onPageScrollStateChanged(int arg0) { } /** * 当当前页面被滑动时调用 */ @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } /** * 当新的页面被选中时调用 */ @Override public void onPageSelected(int position) { //设置底部小点选中状态 setCurDot(position); } /** * 通过点击事件来切换当前的页面 */ @Override public void onClick(View v) { int position = (Integer)v.getTag(); setCurView(position); setCurDot(position); } /** * 设置当前页面的位置 */ private void setCurView(int position){ if (position < 0 || position >= pics.length) { return; } viewPager.setCurrentItem(position); } /** * 设置当前的小点的位置 */ private void setCurDot(int positon){ if (positon < 0 || positon > pics.length - 1 || currentIndex == positon) { return; } points[positon].setEnabled(false); points[currentIndex].setEnabled(true); currentIndex = positon; } private void showLoginDialog(){ LoginDialogFRAGMENT newFragment = LoginDialogFRAGMENT.newInstance("login"); newFragment.show(getSupportFragmentManager(), "dialog"); } private void showRegisterDialog(){ Intent intent = new Intent(this , RegisterACTIVITY.class); startActivity(intent); } public void doLoginClick(String name , String password) { // 处理登录事件 Log.i("WelcomeACTIVITY", "doLogin Click! ==>" + name + password); showProgressDialog("正在登录"); loginLogic.login(name , password) ; } /** * 显示提示框 */ private void showProgressDialog(String title) { if ((!isFinishing()) && (this.progressDialog == null)) { this.progressDialog = new ProgressDialog(this); } this.progressDialog.setTitle(title); this.progressDialog.setMessage("请稍等..."); progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { /*取消登录 */ loginLogic.cancelLogin(); } }); this.progressDialog.show(); } /** * 关闭提示框 */ protected void closeProgressDialog() { if (this.progressDialog != null) this.progressDialog.dismiss(); } @Override protected void onDestroy() { closeProgressDialog(); super.onDestroy(); } @Override public void refresh(Object result, int kind) { switch(kind){ case 1 : Boolean arg0 = (Boolean)result ; if(arg0){ Intent intent = new Intent(WelcomeACTIVITY.this,HomeACTIVITY.class); startActivity(intent); finish(); } break; case -1 : String arg1 = (String) result ; Toast.makeText(this,arg1, Toast.LENGTH_SHORT).show(); closeProgressDialog(); break; case 2 : showLoginDialog(); break; } } //此方法可保证从resume()状态传入intent @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent);// must store the new intent unless getIntent() will // return the old one } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE, 01, Menu.FIRST, "设置服务器地址").setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case 01: loginLogic.setURL(); break; } return true; } }