Передача ссылки класса на другой класс Android ошибка - PullRequest
0 голосов
/ 18 января 2011

Я недавно спросил предшественника на этот вопрос и получил отличный ответ.Однако, когда я работал над этим в своем приложении для Android, я получал неожиданную ошибку и задавался вопросом, может ли каждый взглянуть на мой код и помочь мне понять, что я делаю неправильно.

Ссылка на исходный вопрос: передача ссылки на класс другому классу

Моя ОШИБКА: "Конструктор ConnectDevice (new View.OnClickListener () {}) не определен"

Eclipse обнаружила ошибку.

Заранее спасибо!

Ниже приведены мои фрагменты кода:

public class SmartApp extends Activity 
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.intro);

        final Button connectDeviceButton = (Button) findViewById(R.id.connectDeviceButton);
        connectDeviceButton.setOnClickListener(
        new View.OnClickListener()
        { 
   @Override
   public void onClick(View v) {
    Thread cThread = new Thread(new ConnectDevice(this));
    cThread.start();
   }
  });
    }
}

public class ConnectDevice implements Runnable {

 private boolean connected;
 private SmartApp smartAppRef;
 private ObjectInputStream ois;

 public ConnectDevice(SmartApp smartAppRef) {
  this.smartAppRef = smartAppRef;
 }
}

1 Ответ

3 голосов
/ 18 января 2011

Это потому, что вы передаете объект OnClickListener, но конструктор класса ConnectDevice ожидает объект SmartApp. Зачем? Вы делаете это:

new ConnectDevice(this);

В этом случае this ссылается на OnClickListener. Измените его на:

new ConnectDevice(SmartApp.this);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...