2012-03-24 60 views
1

我更新了Android SDK Tools至版本17,並且在打開Eclipse之後,我在「問題」視圖中發現了一些新錯誤列表,更新。這些錯誤出現在我已經爲按鈕定義onClick屬性的XML佈局文件中。鼠標懸停錯誤消息例如:Android SDK工具Rev.17 - onClick - 未找到相應的方法處理程序

「相應的方法處理程序‘公共無效@串/ timespanDefinition_btnSave_Click(android.view.View)’未找到」

返回。我已經爲此事件名稱定義了相應的方法處理程序和字符串表示形式。這個問題的原因和解決方案是什麼?

某些代碼:

XML佈局

<ToggleButton 
     android:id="@+id/timespanDefinition_tglVibration" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:checked="true" 
     android:onClick="@string/timespanDefinition_tglVibration_Click" 
     android:saveEnabled="true" /> 

活性,其膨脹XML佈局

public class TimespanDefinitionActivity extends Activity 

{

// -- Attributes -- // 

private long mRowId = -1; 
private StringBuilder mBitWeekDays; 
private String mTitle; 

private EditText txtTitle; 
private TabHost tabHost; 
private TimePicker tmepkrStart; 
private TimePicker tmepkrEnd; 
private CheckBox[] weekDays; 
private SeekBar skbrVolume; 
private ToggleButton tglVibration; 

// -- Class Events -- // 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.timespan_definition); 

    initializeResources(); 

    Bundle extras = getIntent().getExtras(); 

    // Get the time-span Row ID 
    mRowId = (extras != null) ? extras.getLong(RVSUtilities.getDefaultPackage() + TimespanScheduleTable.KEY_ROWID) 
      : -1; 

    populateResources(); 
} 

// -- User Events -- // 

public void tglVibration_Click(View v) 
{ 
    if (((ToggleButton) v).isChecked()) 
    { 
     Vibrator vibrate = (Vibrator) getSystemService(VIBRATOR_SERVICE); 
     vibrate.vibrate(1000); 
    } 
} 

的strings.xml:

<string name="timespanDefinition_tglVibration_Click">tglVibration_Click</string> 

注:應用定位的Android 2.3.3谷歌專門API版本10

謝謝。

回答

5

這個問題的原因和解決方法是什麼?

原因是您使用方法名稱的字符串資源。

解決方法是擺脫字符串資源並直接將方法名稱放入屬性中。

UPDATE:如果標記不消失,請右鍵單擊項目,然後選擇「Android工具」>「清除Lint標記」。

+0

,我改變了onclick屬性來:'機器人:的onClick =「tglVibration_Click」'但所有的靜脈因錯誤依然存在。但是,似乎錯誤沒有用新的屬性值更新。因此,我清理並重建了該項目,甚至嘗試關閉並重新打開Eclipse,但錯誤依然如此:「相應的方法處理程序」public void @ string/timespanDefinition_tglVibration_Click(android.view.View)'not found「任何想法? – Kurt 2012-03-24 17:20:41

+0

@Kurt:不,我只希望簡單地改變文件就可以解決你的問題,更不用說清理項目或重新啓動Eclipse了。你是否在'tglVibration_Click'中爲多個小部件使用了'tglVibration_Click',你可能還有另一個小部件的字符串資源? – CommonsWare 2012-03-24 17:24:16

+0

不幸的是,我沒有爲多個窗口小部件使用相同的onClick事件名稱,在tglVibration_Click的工作空間中只發現了一個搜索結果。我無法理解在更新Android SDK工具後出現這個問題的方式。 – Kurt 2012-03-24 17:38:01

1

更新/安裝後不久顯示錯誤。但重新運行林特糾正了這個問題。

右鍵單擊項目 - > Android的工具 - >點擊「運行lint:檢查常見的錯誤」

相關問題