-1

我正在尝试在 java 中定义 3 个彼此相邻的编辑文本。

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

    // LinearLayout
    mainLayout=(LinearLayout)findViewById(R.id.linearLayout);

    // LinearLayout -> RelativeLayout
    main=new RelativeLayout(this);
    mainParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT );
    main.setLayoutParams(mainParams);
    mainLayout.addView(main);

    // LinearLayout -> RelativeLayout -> EditText1
    EditText item1=new EditText(this);
    item1.setHint("Enter the item");
    item1.setId(5);
    RelativeLayout.LayoutParams etParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    etParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
    item1.setLayoutParams(etParams);
    main.addView(item1);

    // LinearLayout -> RelativeLayout -> EditText2
    EditText quantity1=new EditText(this);
    item1.setHint("Quantity");
    item1.setId(6);
    RelativeLayout.LayoutParams qparams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    etParams.addRule(RelativeLayout.ALIGN_LEFT, 5);
    item1.setLayoutParams(qparams);
    main.addView(quantity1);

    // LinearLayout -> RelativeLayout -> EditText3
    EditText rate1=new EditText(this);
    item1.setHint("rate");
    item1.setId(7);
    RelativeLayout.LayoutParams rparams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    etParams.addRule(RelativeLayout.ALIGN_RIGHT, 6);
    item1.setLayoutParams(rparams);
    main.addView(rate1); 

`

我知道您可能会认为我也可以在 xml 中执行此操作,但问题是我必须在运行时创建更多编辑文本。

问题是所有的editTexts都相互重叠。请帮助

4

2 回答 2

0

原因可能是因为您创建了quantity1and rate1,但在创建实例后继续配置item1实例。修复代码以配置quantity1rate1

于 2013-07-30T18:37:30.700 回答
0
  1. 我不确定EditTexts您需要多少,但如果数量相对较少,您可以在 Java 中随意显示/隐藏它们。

    您可以使用此方法显示或隐藏您的TextView

    yourTextViewName.setVisibility(View.GONE); //makes XML element disappear
    yourTextViewName.setVisibility(View.VISIBLE); //makes XML element appear
    

    因此,在您的代码中EditText,您可以显示一个现有的,而不是创建一个新的,您已经为其设置了位置。

  2. 您应该考虑使用 a LinearLayout,因为这可能会阻止您TextViews在彼此之上创建。

于 2013-07-30T18:39:21.003 回答