編輯:我原來的問題是在線以下。我決定採用更簡單的方法來設置按鈕並分配點擊功能。我在以下鏈接找到它。他做了解釋2種方法之間的差異的一個很好的工作...方法未定義
Android User Interface Design: Basic Buttons
我意識到這是一個流行的問題,但在所有的例子我看這個問題似乎是一個被忽略的簡單細節,細節從來都不相同。我相信這是基本的。我剛開始使用Android編程,這是對現有代碼的修改。
該應用程序在空白頁面上有一個按鈕,我希望點擊按鈕通過Amarino API向我的Arduino發送一個int。這裏是我的MainActivity代碼
package com.example.buttontest1;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;
import at.abraxas.amarino.Amarino;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
public class MainActivity extends Activity{
private Button button;
private static final String DEVICE_ADDRESS = "00:06:66:4B:E4:23";
public Context foo1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Amarino.connect(this, DEVICE_ADDRESS);
setContentView(R.layout.main);
addListenerOnButton();
}
public void addListenerOnButton() {
//Select a specific button to bundle it with the action you want
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Amarino.sendDataToArduino(this, DEVICE_ADDRESS, 'j', 1);
}
});
}
protected void onStop() {
super.onStop();
// stop Amarino's background service, we don't need it any more
Amarino.disconnect(this, DEVICE_ADDRESS);
}
}
我看到的錯誤是這樣的,指的是第38行:
The method sendDataToArduino(Context, String, char, int) in the type Amarino is not applicable for the arguments (new View.OnClickListener(){}, String, char, int)
所以這是與上下文和方法的問題?
想想這個'this'的位置。我想你正在尋找'MainActivity.this'。 –