W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
上一節(jié)內(nèi)容中,我們介紹了一個(gè) IntelliJ IDEA 示例 HelloDroid 應(yīng)用程序,雖然我們的示例應(yīng)用程序在這一點(diǎn)上功能完整,但它不支持任何形式的交互。要使應(yīng)用程序支持點(diǎn)擊事件,您需要編輯 src 文件夾中定義的 HelloDroid 類。
在項(xiàng)目(Project)視圖中,找到該 src | com.example.HelloDroid 文件夾下的 HelloDroid.java 文件并單擊它:
在 Android 系統(tǒng)中,您需要明確獲取對可視元素的引用,以便以編程方式對它們進(jìn)行操作。您需要在活動(dòng)類上定義私有成員以容納這些引用,然后在從 onCreate 內(nèi)部調(diào)用的新創(chuàng)建的方法中初始化這些成員。
private TextView message;
private ImageView droid;
message = (TextView) findViewById(R.id.message);
droid = (ImageView) findViewById(R.id.imageView);
該表達(dá)式 R.id.xxx 表示自動(dòng)生成的 R 類的成員。在應(yīng)用程序中,沒有事件和事件處理程序,就不可能進(jìn)行交互。舉個(gè)例子,讓我們添加一個(gè)點(diǎn)擊處理程序到 droid 圖像視圖,并在用戶每次觸摸圖像時(shí)顯示一條消息。
在 Java 中,事件處理程序采用以下形式:
private View.OnClickListener droidTapListener;
將該成員添加到 HelloDroid 類中并在該 InitializeApp 方法中對其進(jìn)行初始化。您的代碼現(xiàn)在應(yīng)該看起來如下所示:
private void InitializeApp() {
message = (TextView) findViewById(R.id.message);
droid = (ImageView) findViewById(R.id.imageView);
// Define and attach listeners
droidTapListener = new View.OnClickListener() {
public void onClick(View v) {
TapDroid();
}
};
droid.setOnClickListener(droidTapListener);
}
這段代碼的凈效果是,每次用戶點(diǎn)擊圖像時(shí),都會(huì)調(diào)用該 TapDroid 方法。
public class MyActivity extends Activity
{
private TextView message;
private ImageView droid;
private View.OnClickListener droidTapListener;
private int counter = 0;
// More code goes here ...
}
private void TapDroid() {
counter++;
String temp;
switch (counter)
{
case 1:
temp = "once";
break;
case 2:
temp = "twice";
break;
default:
temp = String.format("%d times", counter);
}
message.setText(String.format("You touched the droid %s", temp));
}
您的示例應(yīng)用程序現(xiàn)在已經(jīng)完成。您可以構(gòu)建并將其部署到 Android 設(shè)備。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: