プロジェクト

全般

プロフィール

電話・メール対応/邮件或电话对应 #1994 » QRReadActivity.java

初鹿野 貴淑, 2022/07/01 09:27

 
1
package com.densowave.barcodetorfid_hitachi.view;
2

    
3
import android.Manifest;
4
import android.app.AlertDialog;
5
import android.content.Context;
6
import android.content.DialogInterface;
7
import android.content.Intent;
8
import android.content.pm.ActivityInfo;
9
import android.content.pm.PackageManager;
10
import android.os.Bundle;
11
import android.os.Handler;
12
import android.text.Editable;
13
import android.text.InputType;
14
import android.text.TextWatcher;
15
import android.util.Log;
16
import android.view.View;
17
import android.view.inputmethod.InputMethodManager;
18
import android.widget.AdapterView;
19
import android.widget.Button;
20
import android.widget.EditText;
21
import android.widget.FrameLayout;
22
import android.widget.ImageButton;
23
import android.widget.LinearLayout;
24
import android.widget.TextView;
25
import android.widget.Toast;
26

    
27
import androidx.appcompat.app.AppCompatActivity;
28
import androidx.core.app.ActivityCompat;
29
import androidx.core.content.ContextCompat;
30

    
31

    
32
import com.densowave.barcodetorfid_hitachi.R;
33
import com.densowave.barcodetorfid_hitachi.util.CommonUtil;
34
import com.densowave.barcodetorfid_hitachi.util.DataList;
35
import com.densowave.barcodetorfid_hitachi.util.Globals;
36
import com.densowave.barcodetorfid_hitachi.util.MasterList;
37
import com.densowave.barcodetorfid_hitachi.util.ProductList;
38
import com.densowave.barcodetorfid_hitachi.util.RegisterList;
39
import com.densowave.scannersdk.Barcode.BarcodeData;
40
import com.densowave.scannersdk.Barcode.BarcodeDataReceivedEvent;
41
import com.densowave.scannersdk.Barcode.BarcodeException;
42
import com.densowave.scannersdk.Barcode.BarcodeScanner;
43
import com.densowave.scannersdk.Common.CommManager;
44
import com.densowave.scannersdk.Common.CommScanner;
45
import com.densowave.scannersdk.Dto.BarcodeScannerSettings;
46
import com.densowave.scannersdk.Listener.BarcodeDataDelegate;
47
import com.densowave.scannersdk.Listener.ScannerAcceptStatusListener;
48

    
49
import java.text.DateFormat;
50
import java.text.SimpleDateFormat;
51
import java.util.ArrayList;
52
import java.util.Date;
53
import java.util.HashMap;
54
import java.util.List;
55
import java.util.TreeMap;
56

    
57
/*
58
 *登録画面
59
 *
60
 */
61
public class QRReadActivity extends AppCompatActivity implements ScannerAcceptStatusListener, BarcodeDataDelegate {
62
    private Button bt_back,bt_ok,bt_check;
63
    private ImageButton ib_edit_qr,ib_edit_rfid;
64
    private EditText et_barcode,et_tagid,et_product;
65
    private LinearLayout ll_panel;
66
    private TextView tv_store_title,tv_store_name;
67
    private FrameLayout fl_layout;
68
    private TreeMap<String, String> readMap = new TreeMap<>();
69
    private HashMap<String, String> doubleMap = new HashMap<>();
70
    private CommScanner mScanner = null;
71
    public BarcodeScanner mBarcodeScanner;
72
    public static BarcodeScannerSettings mBarcodeScannerSettings;
73
    private List<CommScanner> scanner_list1;
74
    private List<String> list;
75
    private int index = 0;
76
    private boolean bBarcodeOpen;
77
    private final String TAG = "ScannerSample";
78
    private String start_time,store_no,area_no;
79
    private int barcount = 1;
80
    private AlertDialog mDialog;
81
    private CommonUtil common = new CommonUtil();
82
    private List<MasterList> masterList = new ArrayList<MasterList>();
83
    private List<ProductList> productList = new ArrayList<ProductList>();
84
    private List<RegisterList> registerList = new ArrayList<RegisterList>();
85
    private Globals global;
86
    private List<DataList> dataList = new ArrayList<DataList>();
87
    private TreeMap<String,String> barproductMap = new TreeMap<>();
88
    private boolean qr_edit_flg,rfid_edit_flg;
89
    /*
90
     *初回起動ロジック
91
     *
92
     */
93
    @Override
94
    protected void onCreate(Bundle savedInstanceState) {
95
        super.onCreate(savedInstanceState);
96
        setContentView(R.layout.activity_qrread);
97
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
98
        //Intent intent = getIntent();
99
        //store_no = intent.getStringExtra("STORE_NO");
100
        //area_no = intent.getStringExtra("AREA_NAME");
101
        //マスタ取得
102
        //masterList = common.getMasterRead(this,store_no,area_no);
103
        //productList = common.getProductRead(this);
104
        //マスタの存在チェック
105
        //if(masterList == null || masterList.size()<=0){
106
        //    new AlertDialog.Builder(QRReadActivity.this)
107
        //            .setMessage(getString(R.string.qr_dialog_dismiss))
108
        //            .setCancelable(false)
109
        //            .setPositiveButton(getString(R.string.yes),  new DialogInterface.OnClickListener() {
110
        //                @Override
111
        //                public void onClick(DialogInterface dialog, int which) {
112
        //                    finish();
113
        //                }
114
        //            })
115
        //            .setNegativeButton(getString(R.string.no),null)
116
        //            .show();
117
        //}
118
        //else{
119
            tv_store_title = findViewById(R.id.tv_store_title);
120
            tv_store_name = findViewById(R.id.tv_store_name);
121
            //tv_store_title.setText(tv_store_title.getText());
122
            //tv_store_name.setText("(" + masterList.get(0).getStoreName() + ")");
123
        //}
124
        // グローバル変数を扱うクラスを取得する
125
        //global = (Globals) getApplication();
126
        // グローバル変数を扱うクラスを初期化する
127
        //global.init();
128
        // グローバル変数に値をセット
129
        //global.mMaster = masterList;
130
        //global.mProduct = productList;
131
        //for (MasterList row: masterList) {
132
        //    barproductMap.put(row.getManagementPlateNo(),row.getProductName());
133
        //}
134
        if (ContextCompat.checkSelfPermission(
135
                this, Manifest.permission.WRITE_EXTERNAL_STORAGE)== PackageManager.PERMISSION_GRANTED){
136
            // 許可されている時の処理
137
        }else{
138
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
139
        }
140
        fl_layout = findViewById(R.id.fl_layout);
141
        //設定ボタンの設定
142
        et_product = findViewById(R.id.et_product);
143
        et_barcode = findViewById(R.id.et_barcode);
144
        et_barcode.setInputType(InputType.TYPE_NULL);
145
        et_barcode.setOnFocusChangeListener(new View.OnFocusChangeListener() {
146

    
147
            @Override
148
            public void onFocusChange(View v, boolean hasFocus) {
149
                // EditTextのフォーカスが外れた場合
150
                if (hasFocus == false) {
151
                    // ソフトキーボードを非表示にする
152
                    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
153
                    imm.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
154
                }
155
            }
156
        });
157
        et_tagid = findViewById(R.id.et_tagid);
158
        et_tagid.setInputType(InputType.TYPE_NULL);
159
        et_tagid.setOnFocusChangeListener(new View.OnFocusChangeListener() {
160

    
161
            @Override
162
            public void onFocusChange(View v, boolean hasFocus) {
163
                // EditTextのフォーカスが外れた場合
164
                if (hasFocus == false) {
165
                    // ソフトキーボードを非表示にする
166
                    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
167
                    imm.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
168
                }
169
            }
170
        });
171
        ib_edit_qr = findViewById(R.id.ib_edit_qr);
172
        ib_edit_qr.setOnClickListener(new View.OnClickListener() {
173
            @Override
174
            public void onClick(View v) {
175
                if(!qr_edit_flg){
176
                    qr_edit_flg = true;
177
                    ib_edit_qr.setImageResource(R.drawable.edit);
178
                    et_barcode.setInputType(InputType.TYPE_CLASS_NUMBER);
179
                }
180
                else{
181
                    qr_edit_flg = false;
182
                    ib_edit_qr.setImageResource(R.drawable.noedit);
183
                    et_barcode.setInputType(InputType.TYPE_NULL);
184
                    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
185
                    imm.hideSoftInputFromWindow(et_barcode.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
186
                }
187
            }
188
        });
189
        ib_edit_rfid = findViewById(R.id.ib_edit_rfid);
190
        ib_edit_rfid.setOnClickListener(new View.OnClickListener() {
191
            @Override
192
            public void onClick(View v) {
193
                if(!rfid_edit_flg){
194
                    rfid_edit_flg = true;
195
                    ib_edit_rfid.setImageResource(R.drawable.edit);
196
                    et_tagid.setInputType(InputType.TYPE_CLASS_TEXT);
197
                }
198
                else{
199
                    rfid_edit_flg = false;
200
                    ib_edit_rfid.setImageResource(R.drawable.noedit);
201
                    et_tagid.setInputType(InputType.TYPE_NULL);
202
                    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
203
                    imm.hideSoftInputFromWindow(et_tagid.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
204
                }
205
            }
206
        });
207
        bt_ok = findViewById(R.id.bt_ok);
208
        bt_ok.setOnClickListener(new View.OnClickListener() {
209
            @Override
210
            public void onClick(View v) {
211
                addData();
212
            }
213
        });
214
        //終了ボタンの設定
215
        bt_back = findViewById(R.id.bt_back);
216
        bt_back.setOnClickListener(new View.OnClickListener() {
217
            @Override
218
            public void onClick(View v) {
219
                new AlertDialog.Builder(QRReadActivity.this)
220
                        .setMessage(getString(R.string.dialog_exit))
221
                        .setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
222
                            @Override
223
                            public void onClick(DialogInterface dialog, int which) {
224
                                createCSV();
225
                            }
226
                        })
227
                        .setNegativeButton(getString(R.string.no), null)
228
                        .show();
229
            }
230
        });
231
        bt_check = findViewById(R.id.bt_check);
232
        bt_check.setOnClickListener(new View.OnClickListener() {
233
            @Override
234
            public void onClick(View v) {
235
                if(doubleMap.size()>0){
236
                    showCheckDialog();
237
                }
238
            }
239
        });
240

    
241
        et_barcode.setFocusable(true);
242
        et_barcode.requestFocus();
243
        ll_panel = findViewById(R.id.ll_panel);
244
        try {
245
            //ペアリストを取得
246
            scanner_list1 = CommManager.getScanners();
247
            list = new ArrayList<>();
248
            for (int i = 0; i < scanner_list1.size(); ++i) {
249
                Log.d("ExecuteRFIDActivity", "BT Address=" + scanner_list1.get(i).getBTAddress());
250
                Log.d("ExecuteRFIDActivity", "BT LC=" + scanner_list1.get(i).getBTLocalName());
251
                // Bluetoothローカル名を選択
252
                if (scanner_list1.get(i).getBTLocalName().startsWith("SP1-")) {
253
                    list.add(scanner_list1.get(i).getBTLocalName());
254
                }
255
            }
256
            //候補の中から接続対象を選択する
257
            if (list.size()>0){
258
                final String[] items = list.toArray(new String[list.size()]);
259
                new AlertDialog.Builder(QRReadActivity.this)
260
                        .setTitle(getString(R.string.inventory_connect))
261
                        .setCancelable(false)
262
                        .setItems(items, new DialogInterface.OnClickListener() {
263
                            @Override
264
                            public void onClick(DialogInterface dialog, int which) {
265
                                // item_which pressed
266
                                index = which;
267
                                startSP1();
268
                            }
269
                        })
270
                        .show();
271
            }
272
            else{
273
                new AlertDialog.Builder(QRReadActivity.this)
274
                        .setMessage(getString(R.string.inventory_not_sp1))
275
                        .setCancelable(false)
276
                        .setPositiveButton(getString(R.string.yes),  new DialogInterface.OnClickListener() {
277
                            @Override
278
                            public void onClick(DialogInterface dialog, int which) {
279
                                finish();
280
                            }
281
                        })
282
                        .show();
283
            }
284
        }catch (Exception e){
285
            e.printStackTrace();
286
        }
287
    }
288
    /*
289
     *SP1接続開始処理
290
     *ペアリング済みのSP1一覧から接続対象を選択した際に呼び出される
291
     *接続結果を受信するaddAcceptStatusListenerを設定
292
     *
293
     */
294
    public void startSP1(){
295
        for (CommScanner row: scanner_list1 ) {
296
            if(row.getBTLocalName().equals(list.get(index))){
297
                mScanner = row;
298
            }
299
        }
300
        //デバイスが取得できた場合、接続する
301
        // Start accept
302
        CommManager.addAcceptStatusListener(this);
303
        CommManager.startAccept();
304
    }
305
    public void createCSV(){
306
        if(dataList.size()>0){
307
            // OK button pressed
308
            //CSV作成処理
309
            if (ContextCompat.checkSelfPermission(
310
                    QRReadActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)== PackageManager.PERMISSION_GRANTED){
311
                // 許可されている時の処理
312
                common.CsvCreate(QRReadActivity.this,dataList,store_no,1,true);
313
            }else{
314
                if (ActivityCompat.shouldShowRequestPermissionRationale(QRReadActivity.this,
315
                        Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
316
                    ActivityCompat.requestPermissions(QRReadActivity.this,
317
                            new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},0);
318
                } else {
319
                    Toast.makeText(QRReadActivity.this, getString(R.string.permission_error), Toast.LENGTH_LONG).show();
320
                    finish();
321
                }
322
            }
323
        }
324
        if (mScanner != null) {
325
            try {
326
                mScanner.close();
327
            }
328
            catch (Exception e){
329
                e.printStackTrace();
330
            }
331
        }
332
        finish();
333
    }
334
    /*
335
     *バーコード初回立ち上げ処理
336
     *
337
     */
338
    @Override
339
    public void OnScannerAppeared(CommScanner commScanner) {
340
        Log.d("ExecuteConnectActivity", " OnScannerAppeared ");
341
        Log.d("ExecuteConnectActivity", "BT Address=" + commScanner.getBTAddress()) ;
342
        try {
343
            CommManager.endAccept();
344
            CommManager.removeAcceptStatusListener(this);
345

    
346
            mScanner = commScanner;
347
            mScanner.claim();
348
            openbarcode();
349
        }catch (Exception e){
350
            e.printStackTrace();
351
        }
352
    }
353

    
354
    /**
355
     * バーコードスキャン設定
356
     *
357
     */
358
    private void openbarcode() {
359
        if (bBarcodeOpen == false) {
360
            try {
361
                if(mScanner != null){
362
                    mBarcodeScanner = mScanner.getBarcodeScanner();
363
                    mBarcodeScanner.setDataDelegate(this);
364
                    // get scanner settings
365
                    mBarcodeScannerSettings = mBarcodeScanner.getSettings();
366
                    mBarcodeScanner.setSettings(common.setSettingsBarcodeScanner(mBarcodeScannerSettings));
367
                }
368
                if(mBarcodeScanner != null){
369
                    // open
370
                    mBarcodeScanner.openReader();
371
                    bBarcodeOpen = true;
372
                }
373
            } catch (BarcodeException e) {
374
                e.printStackTrace();
375
                Log.d("LightTag", "Error3");
376
            }
377
        }
378
    }
379
    /*
380
     *バーコードデータ受信処理
381
     *
382
     */
383
    @Override
384
    public void onBarcodeDataReceived(CommScanner commScanner, BarcodeDataReceivedEvent barcodeDataReceivedEvent) {
385
        List<BarcodeData> barcodeDataList = barcodeDataReceivedEvent.getBarcodeData();
386
        try{
387
            for (BarcodeData data : barcodeDataList) {
388
                runOnUiThread(new Runnable() {
389
                            // Apply data to UI
390
                            String denso = "";
391
                            String data = "";
392

    
393
                            Runnable setData(String _denso, String _data) {
394
                                denso = _denso;
395
                                data = _data;
396
                                return this;
397
                            }
398

    
399
                            @Override
400
                            public void run() {
401
                                try {
402
                                    View current = QRReadActivity.this.getCurrentFocus();
403
                                    switch (current.getId()) {
404
                                        case R.id.et_tagid:
405
                                            et_tagid.setText(data);
406
                                            bt_ok.setFocusable(true);
407
                                            bt_ok.requestFocus();
408
                                            break;
409
                                        case R.id.et_barcode:
410
                                            et_barcode.setText(data);
411
                                            et_tagid.setFocusable(true);
412
                                            et_tagid.requestFocus();
413
                                            break;
414
                                        default:
415
                                            et_tagid.setFocusable(true);
416
                                            et_tagid.setFocusableInTouchMode(true);
417
                                            et_tagid.requestFocus();
418
                                            break;
419
                                    }
420
                                } catch (Exception e) {
421
                                }
422
                            }
423
                        }.setData(data.getSymbologyDenso(), new String(data.getData(), "Shift-JIS"))
424
                );
425
            }
426
        }catch (Exception e){
427
            e.printStackTrace();
428
        }
429
    }
430
    /*
431
     *画面復帰時処理
432
     *
433
     */
434
    @Override
435
    public void onRestart() {
436
        super.onRestart();
437
    }
438
    /**
439
     * 画面終了処理
440
     */
441
    @Override
442
    protected void onDestroy(){
443
        super.onDestroy();
444
        try{
445
            CommManager.endAccept();
446
            CommManager.removeAcceptStatusListener(this);
447
        }catch (Exception e){
448
            //未接続状態で切断する際にエラー発生
449
            e.printStackTrace();
450
        }
451
        Log.v("LifeCycle", "onDestroy");
452
    }
453
    /*
454
     *戻るボタン押下時処理
455
     *
456
     */
457
    @Override
458
    public void onBackPressed() {
459
        new AlertDialog.Builder(QRReadActivity.this)
460
                .setMessage(getString(R.string.dialog_exit))
461
                .setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
462
                    @Override
463
                    public void onClick(DialogInterface dialog, int which) {
464
                        createCSV();
465
                    }
466
                })
467
                .setNegativeButton(getString(R.string.no), null)
468
                .show();
469
    }
470
    /*
471
     *画面終了時処理
472
     *
473
     */
474
    @Override
475
    protected void onPause() {
476
        super.onPause();
477
        overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
478
    }
479
    /*
480
     *確定処理
481
     *
482
     */
483
    public void addData(){
484
        final DateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
485
        final Date date = new Date(System.currentTimeMillis());
486
        DataList rowdata = new DataList();
487
        final String bar = et_barcode.getText().toString();
488
        final String tag = et_tagid.getText().toString();
489
        final String pro = et_product.getText().toString();
490
        //if(bar.trim().length()<=0){
491
        //    new AlertDialog.Builder(QRReadActivity.this)
492
        //            .setMessage(getString(R.string.qr_error_barcode))
493
        //            .setPositiveButton(getString(R.string.yes), null)
494
        //            .show();
495
        //    return;
496
        //}
497
        if(tag.trim().length()<=0){
498
            new AlertDialog.Builder(QRReadActivity.this)
499
                    .setMessage(getString(R.string.qr_error_tagid))
500
                    .setPositiveButton(getString(R.string.yes), null)
501
                    .show();
502
            return;
503
        }
504
        if(pro.trim().length()<=0){
505
            new AlertDialog.Builder(QRReadActivity.this)
506
                    .setMessage(getString(R.string.qr_error_product))
507
                    .setPositiveButton(getString(R.string.yes), null)
508
                    .show();
509
            return;
510
        }
511
        //タグ番号が重複するかチェック(重複時登録不可)
512
        if(doubleMap.size() > 0 ) {
513
            if (doubleMap.containsValue(tag) == false) {
514
                //バーコード番号が重複するかチェック(重複時上書き確認
515
                if (bar.length()>0 && doubleMap.containsKey(bar) == true) {
516
                    //上書き確認ダイアログを表示し「OK」であれば上書き登録
517
                    new AlertDialog.Builder(QRReadActivity.this)
518
                            .setMessage(getString(R.string.rf_dialog))
519
                            .setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
520
                                @Override
521
                                public void onClick(DialogInterface dialog, int which) {
522
                                    // OK button pressed
523
                                    DataList rowdata = new DataList();
524
                                    rowdata.setDateTime(df.format(date));
525
                                    rowdata.setBarcode(bar);
526
                                    rowdata.setTagID(tag);
527
                                    rowdata.setProductName(pro);
528
                                    doubleMap.remove(bar);
529
                                    doubleMap.put(bar, tag);
530
                                    //重複しているデータを削除する
531
                                    for (int i = 0; i < dataList.size(); i++) {
532
                                        if (dataList.get(i).getBarcode().equals(bar)) {
533
                                            dataList.remove(i);
534
                                        }
535
                                    }
536
                                    //新規で追加
537
                                    dataList.add(rowdata);
538
                                    //ダイアログ表示
539
                                    ShowDialog();
540
                                    refresh();
541
                                }
542
                            })
543
                            .setNegativeButton(getString(R.string.no), null)
544
                            .show();
545
                } else {
546
                    //何も重複が発生していないので、そのまま登録
547
                    //新規追加データ
548
                    rowdata.setDateTime(df.format(date));
549
                    rowdata.setBarcode(bar);
550
                    rowdata.setTagID(tag);
551
                    rowdata.setProductName(pro);
552
                    if(bar.length()==0){
553
                        doubleMap.put(String.valueOf(barcount), tag);
554
                        barcount++;
555
                    }else{
556
                        doubleMap.put(bar, tag);
557
                    }
558
                    dataList.add(rowdata);
559
                    //ダイアログ表示
560
                    ShowDialog();
561
                    refresh();
562
                }
563
            } else {
564
                //タグIDが重複している場合は登録不可
565
                //重複先のバーコード情報を直してもらうよう誘導
566
                String barcorde = "";
567
                for (String row : doubleMap.keySet()) {
568
                    if (doubleMap.get(row).equals(tag)) {
569
                        barcorde = row;
570
                    }
571
                }
572
                //登録不可ダイアログ
573
                new AlertDialog.Builder(QRReadActivity.this)
574
                        .setMessage(getString(R.string.rf_dialog_ng) + "\n(" + barcorde + ")\n"+getString(R.string.rf_dialog_ng2))
575
                        .setPositiveButton(getString(R.string.yes), null)
576
                        .show();
577
            }
578
        }else{
579
            //1件もマスタに存在しない場合はそのまま保存
580
            //新規追加データ
581
            rowdata.setDateTime(df.format(date));
582
            rowdata.setBarcode(bar);
583
            rowdata.setTagID(tag);
584
            rowdata.setProductName(pro);
585
            if(bar.length()==0){
586
                doubleMap.put(String.valueOf(barcount), tag);
587
                barcount++;
588
            }else{
589
                doubleMap.put(bar, tag);
590
            }
591
            dataList.add(rowdata);
592
            //ダイアログ表示
593
            ShowDialog();
594
            refresh();
595
        }
596
    }
597
    /*
598
     *画面項目のリフレッシュ
599
     * 登録完了するたびに実行
600
     *
601
     */
602
    public void refresh(){
603
        et_barcode.setText("");
604
        et_tagid.setText("");
605
        et_product.setText("");
606
        et_barcode.requestFocus();
607
    }
608
    /*
609
     *登録完了メッセージ出力
610
     *
611
     */
612
    public void ShowDialog(){
613
        boolean show_flg = false;
614
        if(mDialog == null){
615
            show_flg = true;
616
        }else if(!mDialog.isShowing()){
617
            show_flg = true;
618
        }
619
        if(show_flg){
620
            AlertDialog.Builder builder = null;
621
            builder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle);
622
            builder.setMessage(getString(R.string.qr_commit));
623
            builder.setCancelable(false);
624
            mDialog = builder.create();
625
            Handler handler = new Handler();
626
            Runnable dialogDismiss = new Runnable() {
627
                public void run() {
628
                    mDialog.dismiss();
629
                }
630
            };
631
            mDialog.show();
632
            TextView textView = (TextView) mDialog.findViewById(android.R.id.message);
633
            textView.setTextSize(30.0f);
634
            handler.postDelayed(dialogDismiss, 500);
635
        }
636
    }
637
    public void showCheckDialog() {
638
        List<String> listdata = new ArrayList<>();
639
        List<String> keylist = new ArrayList<>();
640
        for(String row:doubleMap.keySet()){
641
            listdata.add("【管理プレートNo】\n"+row+"\n【タグ番号】\n"+doubleMap.get(row)+"\n");
642
            keylist.add(row);
643
        }
644
        final List<String> keyList = keylist;
645
        final  String[] array = listdata.toArray(new String[listdata.size()]);
646
        AlertDialog.Builder builder = new AlertDialog.Builder(QRReadActivity.this)
647
                .setItems(array, null) // これだとアイテム選択で閉じる
648
                .setTitle("登録一覧です。問題なければOKで保存して終了")
649
                .setNegativeButton(android.R.string.cancel,null)
650
                .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
651
                    @Override
652
                    public void onClick(DialogInterface dialog, int which) {
653
                        createCSV();
654
                    }
655
                });
656
        final AlertDialog dlg = builder.create();
657
        dlg.getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
658
            @Override
659
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
660
                String key = keyList.get(position);
661
                String tag = doubleMap.get(key);
662
                doubleMap.remove(key);
663
                for(int i = 0; i<dataList.size();i++){
664
                    if(dataList.get(i).getTagID().equals(tag)){
665
                        dataList.remove(i);
666
                    }
667
                }
668
                dlg.dismiss();
669
                Toast.makeText(QRReadActivity.this,getString(R.string.qr_delete_result),Toast.LENGTH_SHORT).show();
670
                return false;
671
            }
672
        });
673
        dlg.show();
674
    }
675
}
(1-1/17)