1919import zuo .biao .apijson .JSONResponse ;
2020import zuo .biao .apijson .StringUtil ;
2121import zuo .biao .library .base .BaseView .OnDataChangedListener ;
22+ import zuo .biao .library .interfaces .OnBottomDragListener ;
2223import zuo .biao .library .manager .HttpManager .OnHttpResponseListener ;
2324import zuo .biao .library .ui .AlertDialog ;
2425import zuo .biao .library .ui .AlertDialog .OnDialogButtonClickListener ;
26+ import zuo .biao .library .ui .WebViewActivity ;
27+ import zuo .biao .library .util .CommonUtil ;
2528import zuo .biao .library .util .DownloadUtil ;
2629import zuo .biao .library .util .ImageLoaderUtil ;
2730import zuo .biao .library .util .Log ;
31+ import android .annotation .SuppressLint ;
32+ import android .app .Activity ;
2833import android .content .Intent ;
2934import android .os .Bundle ;
35+ import android .view .Gravity ;
3036import android .view .LayoutInflater ;
3137import android .view .View ;
3238import android .view .View .OnClickListener ;
3642import apijson .demo .client .R ;
3743import apijson .demo .client .application .APIJSONApplication ;
3844import apijson .demo .client .base .BaseFragment ;
45+ import apijson .demo .client .interfaces .TopBarMenuCallback ;
3946import apijson .demo .client .model .Login ;
4047import apijson .demo .client .model .User ;
4148import apijson .demo .client .util .HttpRequest ;
4249
4350/**设置fragment
4451 * @author Lemon
45- * @use new SettingFragment (),详细使用见.DemoFragmentActivity(initData方法内)
52+ * @use new MineFragment (),详细使用见.DemoFragmentActivity(initData方法内)
4653 */
47- public class SettingFragment extends BaseFragment implements OnClickListener , OnDialogButtonClickListener
48- , OnHttpResponseListener , OnDataChangedListener {
49- private static final String TAG = "SettingFragment " ;
54+ public class MineFragment extends BaseFragment implements OnClickListener , OnDialogButtonClickListener
55+ , OnHttpResponseListener , OnBottomDragListener , TopBarMenuCallback , OnDataChangedListener {
56+ private static final String TAG = "MineFragment " ;
5057
5158 //与Activity通信<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
5259
5360 /**创建一个Fragment实例
5461 * @return
5562 */
56- public static SettingFragment createInstance () {
57- return new SettingFragment ();
63+ public static MineFragment createInstance () {
64+ return new MineFragment ();
5865 }
5966
6067 //与Activity通信>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -65,17 +72,17 @@ public static SettingFragment createInstance() {
6572 public View onCreateView (LayoutInflater inflater , ViewGroup container , Bundle savedInstanceState ) {
6673 //类相关初始化,必须使用<<<<<<<<<<<<<<<<
6774 super .onCreateView (inflater , container , savedInstanceState );
68- setContentView (R .layout .setting_fragment );
75+ setContentView (R .layout .mine_fragment );
6976 //类相关初始化,必须使用>>>>>>>>>>>>>>>>
7077
7178 registerObserver (this );
72-
79+
7380 //功能归类分区方法,必须调用<<<<<<<<<<
7481 initView ();
7582 initData ();
7683 initEvent ();
7784 //功能归类分区方法,必须调用>>>>>>>>>>
78-
85+
7986 return view ;
8087 }
8188
@@ -114,6 +121,43 @@ public void run() {
114121 }
115122
116123
124+ private TextView leftMenu ;
125+ @ SuppressLint ("InflateParams" )
126+ @ Override
127+ public View getLeftMenu (Activity activity ) {
128+ if (leftMenu == null ) {
129+ leftMenu = (TextView ) LayoutInflater .from (activity ).inflate (R .layout .top_right_tv , null );
130+ leftMenu .setGravity (Gravity .CENTER );
131+ leftMenu .setText ("扫一扫" );
132+ leftMenu .setOnClickListener (new OnClickListener () {
133+
134+ @ Override
135+ public void onClick (View v ) {
136+ onDragBottom (false );
137+ }
138+ });
139+ }
140+ return leftMenu ;
141+ }
142+
143+ private TextView rightMenu ;
144+ @ SuppressLint ("InflateParams" )
145+ @ Override
146+ public View getRightMenu (Activity activity ) {
147+ if (rightMenu == null ) {
148+ rightMenu = (TextView ) LayoutInflater .from (activity ).inflate (R .layout .top_right_tv , null );
149+ rightMenu .setGravity (Gravity .CENTER );
150+ rightMenu .setText ("设置" );
151+ rightMenu .setOnClickListener (new OnClickListener () {
152+
153+ @ Override
154+ public void onClick (View v ) {
155+ onDragBottom (true );
156+ }
157+ });
158+ }
159+ return rightMenu ;
160+ }
117161
118162 //UI显示区(操作UI,但不存在数据获取或处理代码,也不存在事件监听代码)>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
119163
@@ -131,15 +175,15 @@ public void run() {
131175 @ Override
132176 public void initData () {//必须调用
133177 super .initData ();
134-
178+
135179 }
136180
137181 @ Override
138182 public void onDataChanged () {
139183 setUser (APIJSONApplication .getInstance ().getCurrentUser ());
140184 }
141185
142-
186+
143187 /**下载应用
144188 */
145189 private void downloadApp () {
@@ -184,13 +228,30 @@ public void initEvent() {//必须调用
184228 findViewById (R .id .llSettingMoment ).setOnClickListener (this );
185229 findViewById (R .id .llSettingWallet ).setOnClickListener (this );
186230
187- findViewById (R .id .llSettingSetting ).setOnClickListener (this );
188231 findViewById (R .id .llSettingAbout ).setOnClickListener (this );
189232 findViewById (R .id .llSettingTest ).setOnClickListener (this );
190233 findViewById (R .id .llSettingLogout ).setOnClickListener (this );
191234 }
192235
193236
237+ @ Override
238+ public void onDragBottom (boolean rightToLeft ) {
239+ if (isAlive () == false ) {
240+ return ;
241+ }
242+
243+ if (rightToLeft ) {
244+
245+ toActivity (SettingActivity .createIntent (context ));
246+ return ;
247+ }
248+
249+ startActivityForResult (ScanActivity .createIntent (context ), REQUEST_TO_SCAN );
250+ context .overridePendingTransition (R .anim .bottom_push_in , R .anim .fade );
251+ }
252+
253+
254+
194255 @ Override
195256 public void onDialogButtonClick (int requestCode , boolean isPositive ) {
196257 if (! isPositive ) {
@@ -218,9 +279,6 @@ public void onDialogButtonClick(int requestCode, boolean isPositive) {
218279 @ Override
219280 public void onClick (View v ) {//直接调用不会显示v被点击效果
220281 switch (v .getId ()) {
221- case R .id .llSettingSetting :
222- toActivity (SettingActivity .createIntent (context ));
223- break ;
224282 case R .id .llSettingAbout :
225283 toActivity (AboutActivity .createIntent (context ));
226284 break ;
@@ -276,6 +334,54 @@ public void onHttpResponse(int requestCode, String resultJson, Exception e) {
276334
277335 //类相关监听<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
278336
337+ private static final int REQUEST_TO_SCAN = 1 ;
338+ @ Override
339+ public void onActivityResult (int requestCode , int resultCode , Intent data ) {
340+ super .onActivityResult (requestCode , resultCode , data );
341+ if (resultCode != RESULT_OK ) {
342+ return ;
343+ }
344+ switch (requestCode ) {
345+ case REQUEST_TO_SCAN :
346+ String result = data == null ? null : data .getStringExtra (ScanActivity .RESULT_QRCODE_STRING );
347+ if (StringUtil .isEmpty (result , true ) == false ) {
348+ if (StringUtil .isUrl (result )) {
349+ int index = result .indexOf ("{\" User\" :{" );
350+ if (index > 0 ) {
351+ JSONResponse response = new JSONResponse (result .substring (index ));
352+ User user = response .getObject (User .class );
353+ long id = user == null ? 0 : user .getId ();
354+ if (id > 0 ) {
355+ toActivity (UserActivity .createIntent (context , id ));
356+ break ;
357+ }
358+ }
359+ toActivity (WebViewActivity .createIntent (context , "扫描结果" , result ));
360+ } else {
361+ CommonUtil .copyText (context , result );
362+ }
363+ }
364+ break ;
365+ default :
366+ break ;
367+ }
368+ }
369+
370+
371+
372+ @ Override
373+ public void onDestroy () {
374+ if (leftMenu != null ) {
375+ leftMenu .destroyDrawingCache ();
376+ leftMenu = null ;
377+ }
378+ if (rightMenu != null ) {
379+ rightMenu .destroyDrawingCache ();
380+ rightMenu = null ;
381+ }
382+
383+ super .onDestroy ();
384+ }
279385
280386
281387 //类相关监听>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
0 commit comments