2011-09-07 10 views
7

2つのテキストボックスと2つのボタンを含むログイン画面のようなダイアログボックスを作成しています。私はそれを作成することができますが、私の問題は2つの編集テキストボックスが互いに重なっていることです(2番目の編集テキストボックスは最初のものと重なっています)。それは単純なものかもしれませんが、私はアンドロイドに新しいので、私はそれに固執しています.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();  
     } 
    } 
+0

を私はむしろ、ログイン画面に別々の活動を行うために行くと定義したいですxmlのレイアウト - これはあなたのためのオプションです – DonGru

答えて

4

ダイアログボックスのレイアウトXMLも作成できます。あなたのダイアログを呼び出す前にだけ実行します。

myDialog.setContentView(R.layout.my_dialog_layout); 
17

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

私はダイアログボックスで線形レイアウトを含めると、強制的に私のアプリケーションを閉じます。 – SSG

+0

あなたは私自身の正気を疑うようにする:)、私は自分で上記の新しいコードを試してみる...試してみよう。最初は3つのalert.setViewの1つをコメントするのを忘れてしまったので、私も強制終了しました。 – mthpvg

+1

これは私が探していたものです。ありがとうございました。 – Hama

0

thnx男性、それは仕事です! けど、この場合には、それは私にerrrorを与えるので、私はこの変更:この上

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

lila1.setOrientation(LinearLayout.VERTICAL); 
関連する問題