[英]Reference class with .java
我在参考方面遇到了一些问题,我正在使用 MainActivity.java,所以我想参考几个扩展名为.java 的文件,但我遇到了一些错误。
这是我在 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());
}
}
看起来像错误:
错误是:
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;
我检查了我的文件并且地址没问题,我做错了什么?
问题是当我使用另一个项目(旧项目)的目录(src 中的所有文件)创建一个新项目时,因此在旧项目中,该目录是另一种方式。
在 BluetoothConnector.java 的参考中,旧项目如下:
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;
这就是这个文件的解决方案:
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;
和其他文件一样:ImageGetterTask.java:旧项目:
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;
这是解决方案:
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;
因此,我在文件中进行了更改:BluetoothException、ImageHandler、SurfaceDrawer 和 Logger。
错误在文件中。java:BluetoothConnector、ImageGetterTask、BluetoothException、ImageHandler、SurfaceDrawer 和 Logger 的参考
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.