将类的引用传递给另一个类android错误

时间:2011-01-18 02:45:15

标签: java android class reference

我最近问过这个问题的前兆并得到了很好的答复。然而,当我在我的Android应用程序中工作时,我收到一个意外的错误,并想知道是否每个人都可以看看我的代码并帮助我看看我做错了什么。

链接到初始问题:passing reference of class to another class

我的错误:“构造函数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 个答案:

答案 0 :(得分:3)

那是因为你传递了一个OnClickListener对象,但是ConnectDevice类的构造函数需要一个SmartApp对象。为什么?你是这样做的:

new ConnectDevice(this);

在这种情况下,this引用OnClickListener。将其更改为:

new ConnectDevice(SmartApp.this);