アプリ作って海外移住

コピペプログラマーのメモ

アラートダイアログ    AlertDialog   リスト形式 OK cancelボタン付き

/////////////////////////// バックキーを押されたときの処理

dl.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// バックキーを押されたときの処理
LinearLayout l_hiduke = (LinearLayout)tview.findViewById(R.id.liner_hiduke);
l_hiduke.setBackgroundColor(Color.parseColor("#00ff0000"));
}
});

 

 

 

 

 

 

 

 

シンプル OKNGボタンつき確認ダイアログ

 final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("タイトル");        // タイトルを設定
        builder.setMessage("メッセージ");    // メッセージを設定

        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.d("Sample","OKを押した");
            }
        });

        builder.setNegativeButton("NG", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.d("Sample","NGを押した");
            }
        });

        AlertDialog dialog = builder.create();    // ビルダーの設定でダイアログを作る
        dialog.show();            // ダイアログを表示
    }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OK CANCEL以外で閉じる方法

LayoutInflater factory = LayoutInflater.from(this);
     inputView = factory.inflate(R.layout.edit_cat, null);
    
   
    //AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder = new AlertDialog.Builder(this);
    builder.setIcon(R.drawable.ic_launcher);
    builder.setTitle("カテゴリの編集");
    builder.setView(inputView);
    
    EditText ed1 = (EditText)inputView.findViewById(R.id.editText1);
    ed1.setText(TARGET_CATNM);
   
    final AlertDialog dialog = builder.create();
    //////////////////////////////////OK
    inputView.findViewById(R.id.button3)
    .setOnClickListener(new View.OnClickListener() { 
          public void onClick(View v) { 
              EditText ed2 = (EditText)inputView.findViewById(R.id.editText1);
              TARGET_CATNM = ed2.getText().toString();
              dialog.dismiss();
              save_proc();
             
        } 
        });

     //////////////////////////////////cancel
     inputView.findViewById(R.id.button4)
                .setOnClickListener(new View.OnClickListener() { 
           public void onClick(View v) { 
               dialog.dismiss();
              // AlertDialog.dismiss();
          } 
          });
   
   
   
    /*
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int whichButton) {
          
          EditText ed2 = (EditText)inputView.findViewById(R.id.editText1);
          TARGET_CATNM = ed2.getText().toString();
          save_proc();
       
         
         
      }
    });
//////////////////////////////////////////////キャンセル
    builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which) {
      }
    });
*/
     inputView.findViewById(R.id.button1)
          .setOnClickListener(new View.OnClickListener() { 
                public void onClick(View v) { 
 
                    EditText ed2 = (EditText)inputView.findViewById(R.id.editText1);
                   // ed2.setText(TARGET_CATNM+"eee");
                  //EditText ed2 = (EditText)inputView.findViewById(R.id.loged2);
                    //EditText ed2 = (EditText)findViewById(R.id.loged2);
                    //ed2.setText("abcdefghijklmn");
                    int start = ed2.getSelectionStart();
                    int end = ed2.getSelectionEnd();
                    String gtx = ed2.getText().toString();
                    int l = gtx.length();
                     hazime= gtx.substring(0,start);//1文字目からカーソル位置まで取り出す
                     owari= gtx.substring((start+1)-1);
                   
                    Log.v("start,end,length",start+"**"+end +"***"+l);
                    Log.v("hazime,end,owari",hazime+"**"+owari);
                    try {
                         // インテント作成
                         Intent intent = new Intent(
                                 RecognizerIntent.ACTION_RECOGNIZE_SPEECH); // ACTION_WEB_SEARCH
                         intent.putExtra(
                                 RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                                 RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
                         intent.putExtra(
                                 RecognizerIntent.EXTRA_PROMPT,
                                 "VoiceRecognitionTest"); // お好きな文字に変更できます
                        
                         // インテント発行
                         startActivityForResult(intent, REQUEST_ONSEI);
                     } catch (ActivityNotFoundException e) {
                         // このインテントに応答できるアクティビティがインストールされていない場合
                         Toast.makeText(MainActivity.this,
                             "ActivityNotFoundException", Toast.LENGTH_LONG).show();
                     }
                  
 
     } 
     });
   
   
   
   
  
    dialog.show();  
   

 

 

 

 

AlertDialogは横幅がwrapしない。

AlertDialogにsetViewするとレイアウト幅は何を指定しようと
画面幅まで引き伸ばされる       daialogは大丈夫

 

 レイアウト流し込み

 LayoutInflater factory = LayoutInflater.from(this);
        final View inputView = factory.inflate(R.layout.ednote, null);
         
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(android.R.drawable.ic_dialog_alert);
        builder.setTitle("カスタムダイアログ");
        builder.setView(inputView);
         
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int whichButton) {
               
          }
        });
    
        builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
          }
        });
    
        AlertDialog dialog = builder.create();
        dialog.show();    
               

 

 

単一選択式

final String[] item_list = {results.get(0),results.get(1),results.get(2)};
                onseiwords = item_list[0];
                new AlertDialog.Builder(MainActivity.this)
                .setIcon(android.R.drawable.ic_dialog_alert)
                .setTitle("音声変換候補")
                .setSingleChoiceItems(item_list, 0, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        //⇒アイテムを選択した時のイベント処理
                        onseiwords = item_list[which];
                        Log.v("onseiwords",onseiwords +"***"+which);
                    }
                })
                
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichok) {
                        
                        //⇒OKボタンを押下した時のイベント処理
                        //【NOTE】
                        //whichButtonには選択したアイテムのインデックスが入っているわけでは
                        //ないので注意
                           Toast.makeText(MainActivity.this,
                                   "OKボタンを押下しました。" + Integer.toString(whichok)+"***"+onseiwords,
                                   Toast.LENGTH_SHORT).show();
                        
                           EditText ed2 = (EditText)findViewById(R.id.loged2);
                        ed2.setText(hazime+onseiwords+owari);
                    }
                })
                .setNegativeButton("キャンセル", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichcl) {
                        //⇒キャンセルボタンを押下した時のイベント処理
                        //【NOTE】
                        //whichButtonには選択したアイテムのインデックスが入っているわけでは
                        //ないので注意
                        Toast.makeText(MainActivity.this,
                                "キャンセルボタンを押下しました。" + Integer.toString(whichcl),
                                Toast.LENGTH_SHORT).show();
                    }
                })
               .show();    
                
            }

 

 

 リスト形式ダイアログ setItem を使う

 

 

finalCharSequence[] items ={"item1","item2","item3"};AlertDialog.Builder listDlg =newAlertDialog.Builder(this);
        listDlg.setTitle("タイトル");
        listDlg.setItems(
            items,newDialogInterface.OnClickListener(){publicvoid onClick(DialogInterface dialog,int which){// リスト選択時の処理// which は、選択されたアイテムのインデックス}});// 表示
        listDlg.create().show();}
 /////////////////////////////リスト形式

 final CharSequence[] items = {"Red", "Green", "Blue"};
             
             new AlertDialog.Builder(MainActivity.this)
             .setTitle("Pick a color")
             .setItems( items, new DialogInterface.OnClickListener() {
                 public void onClick(DialogInterface dialog, int which) {
                     //button.setText(String.format("%sが選択されました。",items[item]));
                 }
             })
             .show();

 

 

 

 

 

 

 

 

 

 

public void accent_click(View view) {
         ACPOS = E5;
       
        Log.v("ACPOS",ACPOS + "");
        final Dialog dialog = new Dialog(this); 
         
        // Dialog のレイアウトを指定 
        dialog.setContentView(R.layout.ac_select); 
     
        // タイトルの指定 
        dialog.setTitle("アクセント登録"); 
     
        // Button がクリックされたときに呼び出されるコールバックを登録 
        dialog.findViewById(R.id.button1) 
                .setOnClickListener(new View.OnClickListener() { 
          public void onClick(View v) { 
       
        ACPOS = 1;
        dialog.dismiss();
        accnt_dsp();
       
          }
        }); 
      
       
       
       // TextView tvtgtdd = (TextView)findViewById(R.id.textView6);
       // Animation animac= AnimationUtils.loadAnimation(this,R.anim.edit_accent);
       // tvtgtdd.startAnimation(animac);
       
       
        dialog.show(); 
    
       
    } 
       

----------------------------------------------------------------

 

 

 

 

 

 

 

 

DialogInterface.OnClickListener() {
   // AlertDialog.Builderオブジェクト生成
            AlertDialog.Builder ad = new AlertDialog.Builder(this);    
            
              // タイトル指定
               ad.setTitle("選択して下さい");

              // アイコン指定
               ad.setIcon(R.drawable.ic_launcher);
              
               // 単一選択アイテムのリスト状態を管理
               selectnum = -1;  //第2引数 初期選択位置  -1はなし!!
               ad.setSingleChoiceItems(dspfiles, selectnum, new DialogInterface.OnClickListener() {
        
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                           // タップされた位置(which)で要素の値を取得
                        // File dspFile = new File(files[which]);  
                        result_item = edit_path + dspfiles[which];
                        // Log.v("dspFile= ",""+result_item +"     "+dspfiles[which]);  
                        
                    } });

                //////////////////////////////////////////// 肯定的な意味を持つボタンを設定
              
                
           ad.setPositiveButton("OK", new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which) {

                 // PositiveButto押下時の処理を記述します。
                //edit
                  TextView tv3 = (TextView) findViewById(R.id.textView3);
                
                  tv3.setText(result_item);
                  
                  onResume();
              }       
    });
              ad.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int which) {

                   
                      }
                    });

   
   
              ad.show();
   
   
    }