Gerson
Gerson

Reputation: 67

Reference class with .java

I'm having some problem with reference, I'm workng with MainActivity.java, so I want to reference several file with extension .java but I'm having some error to do it.

this is my code in MainActivity.java

package com.example.camuny;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.text.method.ScrollingMovementMethod;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.example.camuny.bluetooth.BluetoothConnector;
import com.example.camuny.bluetooth.ImageGetterTask;
import com.example.camuny.bluetooth.exception.BluetoothException;
import com.example.drawing.ImageHandler;
import com.example.camuny.drawing.SurfaceDrawer;
import com.example.camuny.util.Logger;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;


public class MainActivity extends AppCompatActivity implements Logger {
    private final static String MY_NAME = "ArduinoCam";

    private ImageHandler imageHandler = new ImageHandler();
    private SurfaceDrawer surfaceDrawer = new SurfaceDrawer(imageHandler);

    private Map<String, String> mPairedDevicesArrayAdapter = new HashMap<String, String>();
    private BluetoothConnector connector = null;

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

        connector = new BluetoothConnector();

        Button getImageButton = (Button) findViewById(R.id.getImageButton);

        getImageButton.setOnClickListener(buttonClicker);

        TextView loggerTextViewer = (TextView) findViewById(R.id.textView);
        loggerTextViewer.setMovementMethod(new ScrollingMovementMethod());

        SurfaceView surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
        SurfaceHolder surfaceHolder = surfaceView.getHolder();
        surfaceHolder.addCallback(surfaceDrawer);

        enableConnect();

        try {
            mPairedDevicesArrayAdapter = BluetoothConnector.getBondedDevices();
            if (mPairedDevicesArrayAdapter.size() > 0) {
                Iterator<String> it = mPairedDevicesArrayAdapter.keySet().iterator();
                while(it.hasNext()) {
                    logMessage("Dispositivo Enlazado: " + it.next());
                }
            } else {
                logMessage("No hay   Dispositivo");
            }
        } catch (BluetoothException e){
            printStackTrace(e);
        }
    }

    private void enableConnect() {
        Button getImageButton = (Button) findViewById(R.id.getImageButton);
        getImageButton.setEnabled(true);
    }
    private void disableConnect() {
        Button getImageButton = (Button) findViewById(R.id.getImageButton);
        getImageButton.setEnabled(false);
    }

    protected void onDestroy() {
        super.onDestroy();
        try {
            connector.disconnect();
        } catch (BluetoothException e) {}
    }

    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        MenuItem menuItem = menu.add("Salir");
        menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            public boolean onMenuItemClick(MenuItem arg0) {
                finish();
                return true;
            }
        });
        return true;
    }


    private View.OnClickListener buttonClicker = new View.OnClickListener() {
        public void onClick(View v) {
            Button button = (Button)v;
            try {
                switch(button.getId()) {
                    //connection
                    case R.id.getImageButton:
                        if (!BluetoothConnector.isSupported()) {
                            logMessage("Bluetooth no soportado");
                            return;
                        }
                        if (!BluetoothConnector.isEnabled()) {
                            logMessage("Bluetooth no esta Habilitado");
                            return;
                        }

                        Map<String, String> temp = new HashMap<String, String>();
                        temp.putAll(mPairedDevicesArrayAdapter);

                        String nxtKey = temp.get(MY_NAME);
                        if (nxtKey != null) {
                            disableConnect();

                            connector.connect(nxtKey);
                            logMessage("Conectado");

                            ImageGetterTask task = new ImageGetterTask(
                                                            imageHandler,
                                                            connector,
                                                            MainActivity.this,
                                                            (Button) findViewById(R.id.getImageButton));
                            task.execute();

                        } else {
                            logMessage(MY_NAME + " no esta disponible");
                            enableConnect();
                        }
                    break;
                }
            } catch (Exception e) {
                printStackTrace(e);
            }
        }
    };

    public void logMessage(String message) {
        TextView loggerTextViewer = (TextView) findViewById(R.id.textView);
        loggerTextViewer.append(message + "\n");
    }

    public void printStackTrace(Exception e) {
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        e.printStackTrace(pw);
        logMessage("StackTrace: " + sw.toString());
    }
}

look it like the error:

Image Error

the error is:

import com.example.camuny.bluetooth.BluetoothConnector;
import com.example.camuny.bluetooth.ImageGetterTask;
import com.example.camuny.bluetooth.exception.BluetoothException;
import com.example.drawing.ImageHandler;
import com.example.camuny.drawing.SurfaceDrawer;
import com.example.camuny.util.Logger;

I checked my files and addres is ok, what I'm doing wrong?

Upvotes: 0

Views: 124

Answers (1)

Gerson
Gerson

Reputation: 67

The problem was when I create a new project using directory(all files inside of src) of another project(old project), so in the old project, the directory were of another way.

In the reference of BluetoothConnector.java, old project was like:

package info.private.mer.camuny.bluetooth;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;

import info.private.mer.bluetooth.exception.BluetoothException;
import info.private.mer.bluetooth.exception.ConnectionBluetoothException;
import info.private.mer.bluetooth.exception.NotSupportedBluetoothException;

and this was the solution, to this file:

package com.example.camuny.bluetooth;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;

import com.example.camuny.bluetooth.exception.BluetoothException;
import com.example.camuny.bluetooth.exception.ConnectionBluetoothException;
import com.example.camuny.bluetooth.exception.NotSupportedBluetoothException;

and the same to anothers files: ImageGetterTask.java: old project:

package info.private.mer.bluetooth;

import android.os.AsyncTask;
import android.widget.Button;

import info.private.mer.bluetooth.exception.BluetoothException;
import info.private.mer.drawing.ImageHandler;
import info.private.mer.util.Logger;

this was the solution:

package com.example.camuny.bluetooth;

import android.os.AsyncTask;
import android.widget.Button;

import com.example.camuny.bluetooth.exception.BluetoothException;
import com.example.camuny.drawing.ImageHandler;
import com.example.camuny.util.Logger;

So, I did that change in the files: BluetoothException, ImageHandler, SurfaceDrawer and Logger.

Upvotes: 1

Related Questions