android:EditText控制項

來源:互聯網
上載者:User

標籤:

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,如下所示:

 

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

android:orientation="vertical">

 

……

 

 

<EditTextandroid:id="@+id/edit_text"android:layout_width="match_parent"android:layout_height="wrap_content" android:hint="Typesomething here"

/>

</LinearLayout>

 

 

 

這裡使用 android:hint 屬性來指定了一段提示性的文本,然後重新運行程式,效果

3.6 所示。

 

 

圖   3.6

 

可以看到,EditText 中顯示了一段提示性文本,然後當我們輸入任何內容時,這段文本就會自動消失。

不過隨著輸入的內容不斷增多,EditText 會被不斷地拉長。這時由於 EditText 的高度指 定的是 wrap_content,因此它總能包含住裡面的內容,但是當輸入的內容過多時,介面就會變得非常難看。我們可以使用 android:maxLines 屬性來解決這個問題,修改 activity_main.xml, 如下所示:

 

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

android:orientation="vertical" >

 

……

 

 

<EditTextandroid: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 implementsOnClickListener {

 

 

private Button button;

 

 

private EditText editText;

 

 

@Override

protected voidonCreate(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

 

android:EditText控制項

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.