Android:MessageBox无法正常工作

时间:2013-02-28 22:33:53

标签: android

我正在尝试进行一些数据验证。简而言之,当按下添加按钮时,如果未填写某些字段,那么我想显示一个消息框并从进一步处理中返回。

这是没有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说上下文无法解析为变量。

我很担心该怎么做。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

我在上面的代码中没有看到context变量,AlertDialog.Builder的构造函数需要传递给它Context个实例。

但是,由于您是通过OnClickListener onClick()执行此操作,因此可以使用View#getContext()获取Context个实例。

AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());