我想创建一个onclick事件,创建一个EditText. 我尝试了以下代码,但它会擦除所有内容并创建一个带有EditText.public class MainActivity extends Activity { ArrayList<Contact> contact; Contact currentcontact; EditText nameArea,emailArea,phoneArea; int emails=1; int phones=1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); nameArea=findViewById(R.id.name_area); emailArea=findViewById(R.id.e1); phoneArea=findViewById(R.id.p1); contact=new ArrayList<>(); } public void buttonclick(View v){ if(v.getId()==R.id.addemail){ createemaileditview(); } if(v.getId()==R.id.addphone){ createphoneeditview(); } if(v.getId()==R.id.save){ } if(v.getId()==R.id.cancel){ } } protected void createemaileditview(){ LinearLayout outerLayout=new LinearLayout(this); outerLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT)); outerLayout.setOrientation(LinearLayout.VERTICAL); EditText email=new EditText(this); email.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT,1f)); outerLayout.addView(email); setContentView(outerLayout); emails++; } protected void createphoneeditview(){ phones++; }}
2 回答
人到中年有点甜
TA贡献1895条经验 获得超7个赞
您的代码中有一个小错误。您将通过调用 .outerLayout 替换您的主要活动布局setContentView(outerLayout)
。您可以通过将 editText 添加到主活动布局而不是创建新布局并替换所有现有内容来获得所需的功能。
MMMHUHU
TA贡献1834条经验 获得超8个赞
如果您只有一个 EditText 可以创建,或者您一直希望轻松控制设计,最好在开始时使用 View.INVISIBLE 将它们保持不可见,而不是通过 View.GONE。有了这个,您的设计可以很简单。
来自安卓;
View.GONE 这个视图是不可见的,它不占用任何布局空间。
View.INVISIBLE 这个视图是不可见的,但它仍然占据布局空间。
添加回答
举报
0/150
提交
取消