package com.kitty.poclient.fragment.store; //import android.app.Fragment; import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import com.kitty.poclient.R; import com.kitty.poclient.common.ViewFactory; import com.kitty.poclient.common.WatchDog; import com.kitty.poclient.fragment.TabWebFragment.TitlebarUpdateFragment; import com.kitty.poclient.http.HttpGetter; import com.kitty.poclient.interfaces.SelfReloader; import com.kitty.poclient.thread.Pools; import com.kitty.poclient.util.JsonUtil; public class PurseFragment extends Fragment implements TitlebarUpdateFragment,SelfReloader { // Looper.prepare private final String TAG = "PurseFragment"; private Context context; private View view; private LinearLayout llLoading; private LinearLayout llContent; private LinearLayout llNoData; private TextView tvBalance; private EditText etAmount; private Button btnRecharge; private AnimationDrawable ad; private boolean loadingRunning = false; private boolean fragmentIsActive = false; private int firstVisibleItemPosition = -1;// 记录停止卷动时第一个ITEM的序号 private int scrollTop = 0;// 记录停止卷动时第一个ITEM距离顶端的偏移量 private double balance = -1; private final int MSG_LETS_GET_DATA = 0; private final int MSG_DATA_GOT = 1; private final int MSG_DATA_LOAD_FAILD = 2; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case MSG_LETS_GET_DATA: getData(); break; case MSG_DATA_GOT: updateUI(); break; case MSG_DATA_LOAD_FAILD: uiShowNoData(); break; } super.handleMessage(msg); } }; private void getData() { Pools.executorService1.submit(new Runnable() { @Override public void run() { String json = new HttpGetter(context).getBalance(); balance = new JsonUtil().getBalance(json); if (balance != -1) { handler.sendEmptyMessage(MSG_DATA_GOT); } } }); } protected void updateUI() { if (loadingRunning == true) { endLoading(); } tvBalance.setText(balance + "0"); } public PurseFragment() { } public PurseFragment(Context context) { this.context = context; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // parentActivityChangeButton(); // parentActivityChangeTitle(); updateTitlebar(); view = inflater.inflate(R.layout.purse_fragment, null); view.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); initComponents(); startLoading(); getDataWhenActive(); // registerReceivers();// 暂时啥也没有 return view; } private void getDataWhenActive() { new Thread(new Runnable() { @Override public void run() { while (fragmentIsActive == false) { try { Thread.sleep(200); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } handler.sendEmptyMessage(MSG_LETS_GET_DATA); } }).start(); } private void startLoading() { Log.e(TAG, "startLoading()"); llContent.setVisibility(View.GONE); llLoading.setVisibility(View.VISIBLE); llNoData.setVisibility(View.GONE); if (ad == null) { ad = (AnimationDrawable) getResources().getDrawable(R.anim.animatior_list); } llLoading.findViewById(R.id.iv_loading).setBackgroundDrawable(ad); ad.start(); loadingRunning = true; } protected void endLoading() { if (ad != null && ad.isRunning()) { ad.stop(); } llContent.setVisibility(View.VISIBLE); llLoading.setVisibility(View.GONE); llNoData.setVisibility(View.GONE); loadingRunning = false; } public void uiShowNoData() { System.out.println(TAG+"showNoData"); stopLoadingAnimation(); llContent.setVisibility(View.GONE); llLoading.setVisibility(View.GONE); llNoData.setVisibility(View.VISIBLE); View loadFailureView=new ViewFactory().createLoadFailureView(this); llNoData.removeAllViews(); llNoData.addView(loadFailureView); } private void stopLoadingAnimation() { if (ad != null && ad.isRunning()) { ad.stop(); } loadingRunning = false; } @Override public void onResume() { super.onResume(); // listViewGetFormerPosition(); WatchDog.currentSelfReloader = this; fragmentIsActive = true; } // private void parentActivityChangeTitle() { // TabWebActivity.tvTitle.setText("我的钱包"); // TabWebActivity.currentMenuItem = "我的钱包"; // ((TabWebActivity) context).useTitleStyle(TabWebActivity.TITLE_STYLE_NORMAL); // } // // private void parentActivityChangeButton() { // TabWebActivity.changeButton("btnMenu"); // } private void initComponents() { llLoading = (LinearLayout) view.findViewById(R.id.ll_loading); llContent = (LinearLayout) view.findViewById(R.id.ll_content); llNoData = (LinearLayout) view.findViewById(R.id.ll_no_data); tvBalance = (TextView) view.findViewById(R.id.tv_balance); etAmount = (EditText) view.findViewById(R.id.et_amount); btnRecharge = (Button) view.findViewById(R.id.btn_recharge); etAmount.setHint("即将开放"); etAmount.setEnabled(false); btnRecharge.setEnabled(false); } @Override public void onDetach() { // unregisterReceivers(); super.onDetach(); } private void registerReceivers() { } private void unregisterReceivers() { } @Override public void updateTitlebar() { WatchDog.tabWebFragment.setPopbackable(false); WatchDog.tabWebFragment.setTitle("我的钱包"); } @Override public void reload() { System.out.println(TAG+"reloading..."); startLoading(); getDataWhenActive(); } @Override public void onDataLoadFailed() { handler.sendEmptyMessage(MSG_DATA_LOAD_FAILD); } }