在android中的对话框中设置多个文本框

时间:2011-09-07 12:59:54

标签: android android-layout

我正在创建一个对话框,就像一个包含两个文本框和两个按钮的登录屏幕。我能够创建它但我的问题是两个编辑文本框彼此重叠(第二个编辑文本框与第一个重叠)。它可能是一个简单的,但因为我是新的android我坚持它.Pls帮助我解决它。这是源代码

public class LoginActivity extends Activity {
    /** Called when the activity is first created. */
    @Override

    public void onCreate(Bundle savedInstanceState) {                        
        super.onCreate(savedInstanceState);                         
        setContentView(R.layout.main);  
        Button btn= (Button) findViewById(R.id.btn_Login);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                showDialog(0);

            }
        });
    }

        protected Dialog onCreateDialog(int id)
        {
        final AlertDialog.Builder alert = new AlertDialog.Builder(this);                        
        final EditText input = new EditText(this); 
        final EditText input1 = new EditText(this);
        alert.setIcon(R.drawable.icon);
        alert.setTitle("Login");
        alert.setView(input);   
        alert.setView(input1);

        alert.setView(input1);
        alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {             
            public void onClick(DialogInterface dialog, int whichButton) {              
                String value = input.getText().toString().trim();                       
                Toast.makeText(getApplicationContext(), value, Toast.LENGTH_SHORT).show();   
                }                     });                 
        alert.setNegativeButton("Cancel",                  
                new DialogInterface.OnClickListener() {                           
            public void onClick(DialogInterface dialog, int whichButton) {          
                dialog.cancel();    }     });         
        return alert.create();      
        } 
    }

3 个答案:

答案 0 :(得分:18)

如果您尝试使用LinerLayout

,该怎么办?
LinearLayout lila1= new LinearLayout(this);
lila1.setOrientation(LinearLayout.VERTICAL);
final EditText input = new EditText(this); 
final EditText input1 = new EditText(this);
lila1.addView(input);
lila1.addView(input1);
alert.setView(lila1);

像这样:

public class LoginActivity extends Activity {
    /** Called when the activity is first created. */
    @Override

public void onCreate(Bundle savedInstanceState) {                        
    super.onCreate(savedInstanceState);                         
    setContentView(R.layout.main);  
    Button btn= (Button) findViewById(R.id.btn_Login);
    btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            showDialog(0);

        }
    });
}

    protected Dialog onCreateDialog(int id)
    {
    final AlertDialog.Builder alert = new AlertDialog.Builder(this);    

    LinearLayout lila1= new LinearLayout(this);
    lila1.setOrientation(1); //1 is for vertical orientation
    final EditText input = new EditText(this); 
    final EditText input1 = new EditText(this);
    lila1.addView(input);
    lila1.addView(input1);
    alert.setView(lila1);

        alert.setIcon(R.drawable.icon);
        alert.setTitle("Login");

        alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {             
            public void onClick(DialogInterface dialog, int whichButton) {              
                String value = input.getText().toString().trim();                       
                Toast.makeText(getApplicationContext(), value, Toast.LENGTH_SHORT).show();   
                }                     });                 
        alert.setNegativeButton("Cancel",                  
                new DialogInterface.OnClickListener() {                           
            public void onClick(DialogInterface dialog, int whichButton) {          
                dialog.cancel();    }     });         
        return alert.create();      
        } 
    }

它完美无缺:我邀请你复制粘贴它:)。

答案 1 :(得分:5)

您也可以为对话框创建布局XML。在调用Dialog之前,请执行以下操作:

myDialog.setContentView(R.layout.my_dialog_layout);

答案 2 :(得分:0)

thnx男人,这是工作!!! 但我在这种情况下它给了我一个错误,所以我改变了这个:

lila1.setOrientation(1); //1 is for vertical orientation

就此:

lila1.setOrientation(LinearLayout.VERTICAL);