我想为名称和传递字段显示单独的警报

时间:2011-02-17 05:08:16

标签: android

这是我的代码:

package com.example.userpage;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class UserPage extends Activity {
     AlertDialog.Builder builder;
    private final static int EMPTY_TEXT_ALERT = 0;

        @Override
        public Dialog onCreateDialog(int id) {
            switch(id) {
                case EMPTY_TEXT_ALERT: {
                builder = new AlertDialog.Builder(this);
                    builder.setMessage("Message:Fields Empty!!!")
                           .setPositiveButton("OK", new DialogInterface.OnClickListener() {

                               @Override
                               public void onClick(DialogInterface dialog, int which) {
                                   dialog.cancel();
                               }

                     });

                     return builder.create();
                }
            }

            return null;
        }



     String tv,tv1;
    EditText name,pass;
     TextView x,y;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         Button button = (Button) findViewById(R.id.widget44);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                Intent obj = new Intent(UserPage.this,UserPage.class);
                startActivity(obj);

            }
        });

        x = (TextView) findViewById(R.id.widget46);
        y = (TextView) findViewById(R.id.widget47);
         name = (EditText)findViewById(R.id.widget41);
         pass = (EditText)findViewById(R.id.widget43);
        Button button1 = (Button) findViewById(R.id.widget45);
        button1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

              //tv= name.getText().toString();
               //tv1 = pass.getText().toString();
               x.setText(tv);
               y.setText(tv1);
               tv = name.getText().toString();
               if(tv.trim().equals("")) {
                   // text is empty


                   showDialog(EMPTY_TEXT_ALERT);


               }
               tv1 = pass.getText().toString();
              if (tv1.trim().equals(""))
               {

                   showDialog(EMPTY_TEXT_ALERT);

               }
           }
        });


    }
   }

1 个答案:

答案 0 :(得分:1)

尝试运行时会发生什么?你遇到问题的哪个部分?

据我所知,您的代码不会显示任何对话框,因为您从未调用dialog.show()方法。您必须按照设置的方式执行此类操作:

showDialog(EMPTY_TEXT_ALERT).show();

如果你试图让它成为两个单独的对话框,一个用于名称,一个用于传递,那么你所要做的就是创建另一个id变量并添加一个大小写:对于它在showdialog里面的switch语句中(id)方法。

您还应该考虑为变量使用描述性名称。如果您没有使用x,y和widget#等名称,那么您的代码将更容易理解。