package com.minggo.plutoandroidexample.fragment; import android.app.Activity; import android.content.Context; import android.net.Uri; import android.os.Bundle; import android.os.Message; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import com.minggo.pluto.common.CommonAsyncTask; import com.minggo.pluto.fragment.PlutoFragment; import com.minggo.plutoandroidexample.R; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; /** * Created by minggo on 2017/2/4. */ public class ExampleFragment extends PlutoFragment implements OnClickListener{ @BindView(R.id.bt_toast) public Button toastBt; @BindView(R.id.bt_dialog) public Button dialgBt; @BindView(R.id.bt_softinput) public Button softinputBt; @BindView(R.id.bt_network_available) public Button networkBt; @BindView(R.id.bt_hand_message) public Button handleBt; @BindView(R.id.bt_cancel_asyntask) public Button cancelAsynTaskBt; @BindView(R.id.tv_learntime) public TextView learnTimeTv; private Calculator calculator; private Activity activity; private View mainView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); calculator = new Calculator(); calculator.execute(); } @Override public void onAttach(Context activity) { super.onAttach(activity); this.activity = ((Activity) activity); } @Override public void onDetach() { super.onDetach(); activity = null; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mainView = inflater.inflate(R.layout.fragment_example, container, false); ButterKnife.bind(this,mainView); initUI(); return super.onCreateView(inflater, container, savedInstanceState); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); setContentView(mainView); } @Override protected void showData() { setContentShown(true); } private void initUI() { } @OnClick({R.id.bt_toast,R.id.bt_dialog,R.id.bt_softinput,R.id.bt_network_available,R.id.bt_hand_message,R.id.bt_cancel_asyntask}) @Override public void onClick(View v) { switch (v.getId()){ case R.id.bt_dialog: loadingDialog.show(); break; case R.id.bt_toast: showToast("just use showToast(String string)"); break; case R.id.bt_softinput: showSoftInput(); break; case R.id.bt_network_available: showToast("Network is available "+isNetworkConnected()); break; case R.id.bt_hand_message: mUiHandler.sendEmptyMessage(10000); break; case R.id.bt_cancel_asyntask: cancelAsyncTask(calculator); break; default: break; } } @Override public void handleUiMessage(Message msg) { super.handleUiMessage(msg); switch (msg.what){ case 10000: showToast("Message is recieved!"); break; default: learnTimeTv.setText("learning time "+msg.what+"s"); break; } } private class Calculator extends CommonAsyncTask<Void,Void,Integer> { private int i; @Override protected Integer doInBackground(Void... params) { while (i<1000){ if (isCancelled()){ i=0; showToast("learning time is stopped"); break; } i++; mUiHandler.sendEmptyMessage(i); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } if (isCancelled()){ return 0; } return i; } @Override protected void onPostExecute(Integer integer) { super.onPostExecute(integer); mUiHandler.sendEmptyMessage(i); } } }