0

私はいくつかのデータ検証を行おうとしています。つまり、追加ボタンが押されたときに、特定のフィールドが入力されていない場合は、メッセージボックスを表示して、以降の処理から戻りたいと思います。

これは、messageBoxコードを含まない私のコードのフローです。

  Button add = (Button) findViewById(R.id.addButton);
    add.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {


            //local vars
            String access;
            String gender;
            String avail;
            String availCode;


            // getting values from selected editItems
            String name = textName.getText().toString();                
            String street = textStreet.getText().toString();                
            String city = textCity.getText().toString();                
            String state = textState.getText().toString();              
            String postal = textPostal.getText().toString();
            String country = textCountry.getText().toString();
            String directions = textDirections.getText().toString();
            String comments = textComments.getText().toString();


            //verify miniminal data
            if((name.equals("")) || (street.equals(""))|| (city.equals("")) || (state.equals("")) || (postal.equals("")) || (country.equals("")))
            {

            }

このコードを貼り付けてみました:

        //verify miniminal data
        if((name.equals("")) || (street.equals(""))|| (city.equals("")) || (state.equals("")) || (postal.equals("")) || (country.equals("")))
        {
            AlertDialog.Builder builder = new AlertDialog.Builder(context);
            builder.setCancelable(false);
            builder.setTitle("Title");
            builder.setInverseBackgroundForced(true);
            builder.setMessage("Must enter minimal data.");
            builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
                return;
              }
            });
            AlertDialog alert = builder.create();
            alert.show();

        }

しかし...私はこの行を構築することができません:

AlertDialog.Builder builder = new AlertDialog.Builder(context);

Eclipseは、コンテキストを変数に解決できないと言っています。

私は何をすべきかについて混乱しています。誰かが助けることができますか?

4

1 に答える 1

1

context上記のコードのどこにも変数がありません。AlertDialog.BuilderコンストラクターにはContextインスタンスを渡す必要があります。

ただし、これはOnClickListener'sから実行しているため、onClick()を使用してインスタンスView#getContext()を取得できます。Context

AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());
于 2013-02-28T22:36:42.653 に答える