我正在创建一个对话框,就像一个包含两个文本框和两个按钮的登录屏幕。我能够创建它但我的问题是两个编辑文本框彼此重叠(第二个编辑文本框与第一个重叠)。它可能是一个简单的,但因为我是新的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();
}
}
答案 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)
lila1.setOrientation(1); //1 is for vertical orientation
就此:
lila1.setOrientation(LinearLayout.VERTICAL);