• 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

  • 相关阅读:
    VS2010 自动跳过代码现象
    Reverse Linked List II 【纠结逆序!!!】
    Intersection of Two Linked Lists
    Linked List Cycle II
    Remove Nth Node From End of List 【另一个技巧,指针的指针】
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Remove Duplicates from Sorted List
    Linked List Cycle
    Dungeon Game
  • 原文地址:https://www.cnblogs.com/zgqys1980/p/5114237.html
Copyright © 2020-2023  润新知