[关闭]
@Arbalest-Laevatain 2018-08-24T13:13:41.000000Z 字数 3244 阅读 588

按钮 动态添加组件

Android


我的总结

网络参考

https://www.jb51.net/article/128891.htm

布局代码

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical"
  6. >
  7. <EditText
  8. android:id="@+id/et_username"
  9. android:hint="请输入用户名"
  10. android:layout_width="fill_parent"
  11. android:layout_height="wrap_content"/>
  12. <EditText
  13. android:id="@+id/et_passward"
  14. android:hint="请输入密码"
  15. android:inputType="textPassword"
  16. android:layout_width="fill_parent"
  17. android:layout_height="wrap_content"/>
  18. <ImageButton
  19. android:id="@+id/ib"
  20. android:src="@drawable/state2"
  21. android:layout_width="50dp"
  22. android:layout_height="50dp"/>
  23. <Button
  24. android:id="@+id/btn"
  25. android:text="重置"
  26. android:layout_width="wrap_content"
  27. android:layout_height="wrap_content"/>
  28. <LinearLayout
  29. android:id="@+id/linearLayout"
  30. android:layout_width="wrap_content"
  31. android:layout_height="wrap_content"
  32. android:orientation="vertical">
  33. </LinearLayout>
  34. </LinearLayout>

java代码

  1. package com.example.lab2;
  2. import android.os.Bundle;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.view.Menu;
  6. import android.view.View;
  7. import android.view.View.OnClickListener;
  8. import android.view.View.OnLongClickListener;
  9. import android.widget.Button;
  10. import android.widget.EditText;
  11. import android.widget.ImageButton;
  12. import android.widget.LinearLayout;
  13. import android.widget.TextView;
  14. import android.widget.Toast;
  15. public class MainActivity extends Activity {
  16. EditText et1; //输入用户名的EditText
  17. EditText et2; //输入密码的EditText
  18. ImageButton ib; //声明ImageButton
  19. Button btn; //重置按钮
  20. Context context;
  21. LinearLayout mLinearLayout; //这个LineatLayout用于放置添加的组件
  22. TextView tv;
  23. @Override
  24. protected void onCreate(Bundle savedInstanceState) {
  25. super.onCreate(savedInstanceState);
  26. setContentView(R.layout.activity_main);
  27. init(); //初始化
  28. //单击imagebutton
  29. OnClickListener listener = new OnClickListener() {
  30. @Override
  31. public void onClick(View arg0) {
  32. // TODO Auto-generated method stub
  33. if(et1.getText().toString().equals("android") && et2.getText().toString().equals("2015"))
  34. {
  35. ib.setImageResource(R.drawable.state1); //设置改变原来的图片
  36. et1.setVisibility(View.GONE);
  37. et2.setVisibility(View.GONE);
  38. }
  39. else //输入账号或者密码错误的时候
  40. {
  41. et2.setText("");
  42. et2.setHint("账号或密码错误");
  43. }
  44. }
  45. };
  46. ib.setOnClickListener(listener);
  47. //长按imagebutton
  48. OnLongClickListener longlistener = new OnLongClickListener() {
  49. @Override
  50. public boolean onLongClick(View arg0) {
  51. // TODO Auto-generated method stub
  52. Toast.makeText(context, "动态添加了TextView了哦", Toast.LENGTH_SHORT);
  53. tv = new TextView(context);
  54. tv.setText("这里是动态添加的TextView");
  55. mLinearLayout.addView(tv); //添加组件
  56. return false;
  57. }
  58. };
  59. ib.setOnLongClickListener(longlistener);
  60. //重置
  61. OnClickListener listener2 = new OnClickListener() {
  62. @Override
  63. public void onClick(View arg0) {
  64. // TODO Auto-generated method stub
  65. ib.setImageResource(R.drawable.state2);
  66. et1.setHint("请输入用户名");
  67. et2.setHint("请输入密码");
  68. et1.setText("");
  69. et2.setText("");
  70. et2.requestFocus(); //将光标定位EditText
  71. et1.setVisibility(View.VISIBLE);
  72. et2.setVisibility(View.VISIBLE);
  73. mLinearLayout.removeAllViews(); //点击重置按钮的时候,也将原来添加的组件一起清除
  74. }
  75. };
  76. btn.setOnClickListener(listener2);
  77. }
  78. //初始化函数
  79. public void init()
  80. {
  81. et1 = (EditText)findViewById(R.id.et_username);
  82. et2 = (EditText)findViewById(R.id.et_passward);
  83. ib = (ImageButton)findViewById(R.id.ib);
  84. btn = (Button)findViewById(R.id.btn);
  85. context = MainActivity.this;
  86. mLinearLayout = (LinearLayout)findViewById(R.id.linearLayout);
  87. }
  88. }
  89. xml:
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注