2016-12-02 16 views
-1

在那裏,我是Android編程的新手,我有一個學校的任務來分析一些項目。所以,我從github上選擇了一個名爲pTune的Guitar Tuner項目(鏈接:here)。

我已經閱讀了代碼並分析了它,從我所閱讀的內容中可以看到有一根帶弧度計的針,以查看輸入聲音(吉他聲音)是否合適。

在該項目中,我想顯示吐司,如果調整過程適合撥號90度。所以,我添加此吐司,但其不顯示..在公共課中添加對應於任何事件的Toast

if (relativeFrequency == targetFrequency){ 
     Toast.makeText(PTuneActivity.this, "FIT", Toast.LENGTH_SHORT).show(); 
    } 

放在updateDisplay類代碼,我已經把它放在其他類,但仍然沒有工作,因爲我想要的。

public void updateDisplay(float frequency) { 
    // Calculate difference between target and measured frequency, 
    // given that the measured frequency can be a factor of target. 
    float difference = 0; 
    if (frequency > targetFrequency) { 
     int divisions = (int) (frequency/targetFrequency); 
     float modified = targetFrequency * (float) divisions; 
     if (frequency - modified > targetFrequency/2) { 
      modified += targetFrequency; 
      divisions++; 
     } 
     difference = (frequency - modified)/(float) divisions; 
    } else { 
     // If target is greater than measured, just use difference. 
     difference = frequency - targetFrequency; 
    } 

    float relativeFrequency = targetFrequency + difference; 

    // Update TextView 
    if (relativeFrequency < 1000f) 
     t.setText(String.format("%.1f Hz", relativeFrequency)); 
    else 
     t.setText(String.format("%.2f kHz", relativeFrequency/1000)); 

    //My code 
    if (relativeFrequency == targetFrequency){ 
     Toast.makeText(PTuneActivity.this, "FIT", Toast.LENGTH_SHORT).show(); 
    } 

    // Update DialView 
    float value = difference/(targetFrequency/2) * 90; 
    dial.update(value); 
} 

我知道這在實際實現中沒用,但我想學習android編程。

+0

我想這兩個都是'float'值。你確定在某一時刻他們將會是'=='? –

+0

'relativeFrequency'將始終大於'targetFrequency + difference'? – t0mm13b

+0

是啊,它的浮動,但同時我鍵入=而不是==它提供了一個錯誤 – Few

回答

0

您正在測試兩個浮點之間的相等性,一個來自輸入?它可能永遠不會完全相等。你應該添加一些日誌和一個「其他」語句,看看它是否進入「如果」,因爲吐司可能不是真正的問題

+0

嗯,所以我必須使用「其他如果」正確?但我不知道日誌,你的意思是,我不擅長於java – Few

+0

爲什麼「其他」?你想測試什麼其他情況? – PsykoBabar

0

我只是嘗試通過我自己的挖掘和它爲我工作,雖然它不是很好,但我認爲確定,只需添加此行代碼upper dial.update(value);

if (frequency >= targetFrequency) { 
    Toast.makeText(PTuneActivity.this, "FIT", Toast.LENGTH_SHORT).show(); 
}