簡體   English   中英

如何在顯示文本或單擊按鈕時獲得振動?

[英]How do I get vibration when displaying text or clicking a button?

首先,我是 Java 和整體編碼的初學者。 當顯示某個文本框或單擊選擇按鈕時,我試圖讓設備振動。 然而,即使我嘗試了其他用戶的一些建議,我也無法弄清楚如何......

如果您能逐步解釋,我將不勝感激。 先感謝您!!

import android.content.Context;
import android.view.View;
import android.widget.Button;
import android.os.Vibrator;
import java.util.Arrays;

public class Story {

Hospital1 h1;
String c1, c2, c3, c4, t;

public Story(Hospital1 h1) {
    this.h1 = h1;
}

public void selectNext(String next) {
    switch (next) {
    //  hospital 1
        case "h11": hospital11(); break;
        case "h12": hospital12(); break;
        case "h13": hospital13(); break;
        case "h14": hospital14(); break;
        case "h15": hospital15(); break;
        case "h16": hospital16(); break;
        case "h17": hospital17(); break;
        case "h18": hospital18(); break;
        case "h19": hospital19(); break;

        case "h1s1": hospital1select1(); break;
        case "h110a": hospital110a(); break;
        case "h110b": hospital110b(); break;

        case "h1s2": hospital1select2(); break;
        case "h111a": hospital111a(); break;
        case "h111b": hospital111b(); break;

        case "h112": hospital112(); break;
        case "h113": hospital113(); break;
        .
        .
        .
}

public void showButton() {
    for (Button button : Arrays.asList(h1.choice1, h1.choice2, h1.choice3, h1.choice4)) {
        button.setVisibility(View.VISIBLE);
    }

}

public void noButton() {
    for (Button button : Arrays.asList(h1.choice1, h1.choice2, h1.choice3, h1.choice4)) {
        button.setVisibility(View.INVISIBLE);
    }
}

public void start() {
    h1.background.setImageResource(R.mipmap.hospitalbed);
    h1.character.setImageResource(R.mipmap.god);
    h1.character.setVisibility(View.INVISIBLE);
    h1.text.setText("");
    noButton();
    t = "h11";
}

public void hospital11() {
    h1.character.setVisibility(View.VISIBLE);
    h1.character.setImageResource(R.mipmap.nurse2);
    h1.text.setText("");
    t = "h12";
}

public void hospital12() {
    h1.character.setVisibility(View.INVISIBLE);
    h1.text.setText("");
    t = "h13";
}

public void hospital18() {
    h1.character.setVisibility(View.INVISIBLE);
    h1.text.setText("");
    t = "h14";
}

public void hospital14() {
    h1.character.setVisibility(View.VISIBLE);
    h1.text.setText("");
    t = "h15";

    Vibrator vibrator = (Vibrator) h1.getSystemService(Context.VIBRATOR_SERVICE);
    vibrator.vibrate(1000);
}

public void hospital15() {
    h1.character.setVisibility(View.VISIBLE);
    h1.text.setText("");
    t = "h1s1";
}

public void hospital1select1() {
    h1.character.setVisibility(View.INVISIBLE);
    h1.text.setVisibility(View.INVISIBLE);
    showButton();
    h1.choice1.setVisibility(View.INVISIBLE);
    h1.choice4.setVisibility(View.INVISIBLE);
    h1.choice2.setText("");
    h1.choice3.setText("");

    c2 = "h16a";
    c3 = "h16b";;
}

假設您的h1是有效的 Object 的Contexth1.getSystemService(Context.VIBRATOR_SERVICE)沒有任何編譯錯誤。

您的設備應該能夠通過這段代碼振動:

Vibrator vibrator = (Vibrator) h1.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(1000);

但請注意,上面的內容已棄用 實現相同目的的更新方法如下:

VibratorManager vibratorManager = (VibratorManager) h1.getSystemService(Context.VIBRATOR_MANAGER_SERVICE);
Vibrator vibrator = vibratorManager.getDefaultVibrator();
vibrator.vibrate(VibrationEffect.createOneShot(1000, VibrationEffect.DEFAULT_AMPLITUDE));

由於振動需要 Android 中的權限,因此您需要在AndroidManifest.xml中添加權限android.permission.VIBRATE

<manifest>
    <uses-permission android:name="android.permission.VIBRATE" />

    ...
</manifest>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM