簡體   English   中英

如何知道按鈕的開/關是否被點擊

[英]How to know button on/off clicked or not

我正在為android應用程序編寫自動化。

要編寫自動化代碼,我正在使用uiautomatorviewer(android sdk工具)檢查一個應用程序

我想查看華氏和攝氏的天氣。

有一個按鈕開關天氣單位。

切換天氣單位后,我怎么知道華氏或攝氏

這是所附的屏幕截圖

  1. 天氣單位 在此處輸入圖片說明

  2. 華氏溫度 在此處輸入圖片說明

  3. 攝氏溫度 在此處輸入圖片說明

僅供參考,我不是更改移動應用代碼的開發人員。 我正在為移動應用編寫自動化測試。 有什么方法可以使用帶有Java的http://appium.io/自動執行此操作?

使用開關,

<Switch
    android:id="@+id/mySwitch"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textOn="deg celcius"
    android:textOff="deg fah"/>

您已開啟=攝氏度,並已關閉=華氏度,因此請使用setOnCheckedChangeListener

Switch switchStatus = (TextView) findViewById(R.id.switchStatus);
mySwitch = (Switch) findViewById(R.id.mySwitch);
mySwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() {

   @Override
   public void onCheckedChanged(CompoundButton buttonView,
     boolean isChecked) { 

       if(isChecked){ // deg celcius
           // Do operation
       }else{ // deg fahrenheit
           // Do operation
       }     
   }
});

根據您的解釋,您似乎需要一個ToggleButton 切換按鈕開發人員鏈接

您可以通過以下方式獲取是否選中該按鈕:

boolean on = ((ToggleButton) view).isChecked();

一旦有了切換按鈕,就可以在布局中進行簡單設置:

 android:textOn="@string/Fahrenheit"
 android:textOff="@string/Celsius"

該按鈕的OnClickListener執行您各自的邏輯。這應該足以使您繼續前進。

嘗試這個:

    YourSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView,
    boolean isChecked) {
    if(isChecked){
    switchStatus.setText("Switch is currently ON");
    }else{
    switchStatus.setText("Switch is currently OFF");
    }
    }
    });

我建議您使用Switch,但如果仍然要使用Switch,則必須自己管理兩個文本視圖的狀態(啟用/禁用)。

TextView fehreniteTextview, celsiusTextView;
fehreniteTextview=(TextView)findViewById(R.id.fehrenite);
celsiusTextView=(TextView)findViewById(R.id.celsius);

因此,在這里,onClick您還必須更改另一個textview的狀態,例如:

public void onClickOfFahrenite(View v){
    celsiusTextView.setEnabled(true);
    fehreniteTextview.setEnabled(false);
}

public void onClickOfCelsius(View v){
    celsiusTextView.setEnabled(false);
    fehreniteTextview.setEnabled(true);
}

現在,在做出任何決定之前,您將必須使用以下命令檢查是否啟用了一個文本視圖:

if(fehreniteTextview.isEnabled())
{
// Do your stuff
}
else
{
// Do your stuff
}

希望對您有幫助!

從屏幕截圖來看,textview的背景顏色從灰色變為藍色。 因此,如果您獲得了textview的背景色,則可以知道哪個開關為ON。 您可以查看https://groups.google.com/forum/#!topic/appium-discuss/buToEAIDn2c

這里的每個答案都是來自Android開發人員而不是Android測試人員,而且沒有人回答您的問題(他們似乎沒有讀懂您無法更改應用程序本身)。

應用程序的完成方式無法實現。 UiAutomator不讀取顏色或類似內容。 因此,如果這些元素的屬性沒有任何區別(“文本”和“邊界”除外),則無法知道所選的含義。

如果應用程序正確完成,它將是一個ToogleButton,然后屬性(已選中或選中,我確定是哪個)將指示選擇了哪個。

暫無
暫無

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

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