zoukankan      html  css  js  c++  java
  • android:EditText控件

    EditText 是程序用于和用户进行交互的另一个重要控件,它允许用户在控件里输入和编 辑内容,并可以在程序中对这些内容进行处理。EditText 的应用场景应该算是非常普遍了, 发短信、发微博、聊 QQ 等等,在进行这些操作时,你不得不使用到 EditText。那我们来看 一看如何在界面上加入 EditText 吧,修改 activity_main.xml 中的代码,如下所示:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"

    android:orientation="vertical" >

    ……

    <EditText android:id="@+id/edit_text" android:layout_width="match_parent" android:layout_height="wrap_content"

    />

    </LinearLayout>

    其实看到这里,我估计你已经总结出 Android 控件的使用规律了,基本上用法都很相似, 给控件定义一个 id,再指定下控件的宽度和高度,然后再适当加入些控件特有的属性就差不 多了。所以使用 XML 来编写界面其实一点都不难,完全可以不用借助任何可视化工具来实 现。现在重新运行一下程序,EditText 就已经在界面上显示出来了,并且我们是可以在里面 输入内容的,如图 3.5 所示。

     

    图   3.5

    细心的你平时应该会留意到,一些做得比较人性化的软件会在输入框里显示一些提示性 的文字,然后一旦用户输入了任何内容,这些提示性的文字就会消失。这种提示功能在 Android 里是非常容易实现的,我们甚至不需要做任何的逻辑控制,因为系统已经帮我们都 处理好了。修改 activity_main.xml,如下所示:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"

    android:orientation="vertical">

    ……

    <EditText android:id="@+id/edit_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Type something here"

    />

    </LinearLayout>

    这里使用 android:hint 属性来指定了一段提示性的文本,然后重新运行程序,效果如图

    3.6 所示。

     

    图   3.6

    可以看到,EditText 中显示了一段提示性文本,然后当我们输入任何内容时,这段文本 就会自动消失。

    不过随着输入的内容不断增多,EditText 会被不断地拉长。这时由于 EditText 的高度指 定的是 wrap_content,因此它总能包含住里面的内容,但是当输入的内容过多时,界面就会 变得非常难看。我们可以使用 android:maxLines 属性来解决这个问题,修改 activity_main.xml, 如下所示:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"

    android:orientation="vertical" >

    ……

    <EditText android:id="@+id/edit_text" android:layout_width="match_parent" android:layout_height="wrap_content"

    android:hint="Type something here"

    android:maxLines="2"

    />

    </LinearLayout>

    这里通过 android:maxLines 指定了 EditText 的最大行数为两行,这样当输入的内容超过 两行时,文本就会向上滚动,而 EditText 则不会再继续拉伸,如图 3.7 所示。

     

    图   3.7

    我们还可以结合使用 EditText 与 Button 来完成一些功能,比如通过点击按钮来获取

    EditText 中输入的内容。修改 MainActivity 中的代码,如下所示:

    public class MainActivity extends Activity implements OnClickListener {

    private Button button;

    private EditText editText;

    @Override

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

    button = (Button) findViewById(R.id.button);

    editText = (EditText) findViewById(R.id.edit_text);

    button.setOnClickListener(this);

    }

    @Override

    public void onClick(View v) {

    switch (v.getId()) {

    case R.id.button:

    String inputText = editText.getText().toString(); Toast.makeText(MainActivity.this, inputText,

    Toast.LENGTH_SHORT).show();

    break;

    default:

    break;

    }

    }

    }

    首先通过 findViewById() 方法得到 EditText 的实例,然后在按钮的点击事件里调用 EditText 的 getText()方法获取到输入的内容,再调用 toString()方法转换成字符串,最后仍 然还是老方法,使用 Toast 将输入的内容显示出来。重新运行程序,在 EditText 中输入一段内容,然后点击按钮,效果如图 3.8 所示。

     

    图   3.8

  • 相关阅读:
    10. 正则表达式匹配
    5. 最长回文子串
    板子总结
    2020: 学生查询
    解决apt-get出错
    03如何计算算法的复杂度
    ad如何从PCB中导出元件封装库
    调车遇到的问题及解决办法
    java报错与解决方法总结
    SWD下载k60
  • 原文地址:https://www.cnblogs.com/zgqys1980/p/5114237.html
Copyright © 2011-2022 走看看