where to instantiate an anonymous class?

时间:2018-02-03 08:27:23

标签: java android anonymous-class

I am trying to use a code from this link https://developer.android.com/training/connect-devices-wirelessly/nsd.html

"from Discover Services on the Network." I copy and paste code as the following:

import android.net.nsd.NsdManager;
import android.net.nsd.NsdServiceInfo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button aButton = (Button) findViewById(R.id.MyButton);
    aButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
// there is an error in the next line, ";" expected.
// but I do not know where to put ; exactly   
            public void initializeRegistrationListener() {
                mRegistrationListener = new NsdManager.RegistrationListener() {

                    @Override
                    public void onServiceRegistered(NsdServiceInfo NsdServiceInfo) {
                        // Save the service name. Android may have changed it in order to
                        // resolve a conflict, so update the name you initially requested
                        // with the name Android actually used.
                        mServiceName = NsdServiceInfo.getServiceName();
                    }

                    @Override
                    public void onRegistrationFailed(NsdServiceInfo serviceInfo, int errorCode) {
                        // Registration failed! Put debugging code here to determine why.
                    }

                    @Override
                    public void onServiceUnregistered(NsdServiceInfo arg0) {
                        // Service has been unregistered. This only happens when you call
                        // NsdManager.unregisterService() and pass in this listener.
                    }

                    @Override
                    public void onUnregistrationFailed(NsdServiceInfo serviceInfo, int errorCode) {
                        // Unregistration failed. Put debugging code here to determine why.
                    }
                };
            }            }
    });
}
}

But there is an error in the this Line "public void initializeRegistrationListener()", ";" expected. but I do not know where to put ";" exactly or there is something else wrong that I cannot see it, can someone guide me, please?

PS: I am trying to make my phone discovers Mdns service that I created on my laptop using javascript, I have no experience in Java but I need to run the previous code to test the service that I have created already.

1 个答案:

答案 0 :(得分:1)

First of all you need an xml that contains an Button(this button will have android:id="@+id/mybutton", and that's the id you have to use on findViewById(R.id.mybutton).

In onCreate method of your activity you will write that code that you showed us, and you are good to go.

Another small step, if you wrote your own xml, make sure to have this line in onCreate setContentView(R.layout.yourxml)