我是 Android 开发和 Java 编程新手。我正在尝试创建一个没有新用户界面的单独的类。假设我有一个主要 Activity ,其中如果我单击一个按钮,它将启动一个类并调用其中的方法并在主要 Activity 上显示文本。
现在我已经创建了一个 Main Activity 和一个名为 BluetoothOn 的类:请看一下我的代码:
这是主要 Activity ,其中enablemyBluetooth方法是按钮单击
public class MainActivity{
....
....
public void enablemyBluetooth(View view){
BluetoothOn ble = new BluetoothOn();
ble.initializeBlue();
}
}
现在我创建一个类,其中我计划在此处执行所有过程,而不干预程序的主要 Activity ,就像它在后台运行一样。在我的代码中,我只想更改 Textview 但当我在我的 Android 上运行它,它指出不幸的是该应用程序已停止。
public class BluetoothOn {
private void initializeBlue(){
textView1 =(TextView)findViewById(R.id.textView1);
textView1.setText(BleisOn);
}
}
请注意,我已经编译了这个程序,没有错误/所有变量都已声明。我尝试在 Main 上将蓝牙类创建为私有(private),并且它有效。我只是想将其创建为包中的另一个类来组织我的代码。
如果我想创建一个单独的类,我真的有必要创建另一个 Activity 吗?谁能给我提示我应该做什么或声明什么?请帮忙谢谢。
更新:谢谢您的所有回答,不幸的是我无法让这个简单的过程在另一个类上工作...我对 Java 很陌生,仍在学习我的方法..无论如何,这就是我遇到的情况。
我按照 unohu 建议的帖子进行操作,但它在 Main 上提供了一个错误:“BluetoothOn 类型中的初始化Blue() 方法不适用于参数。
这里是更完整的类代码:
主要 Activity :
public class MainActivity extends Activity {
public void enableBluetooth (View view){
BluetoothOn ble = new BluetoothOn();
ble.initializeBlue(); // error on this part
}
}
蓝牙类:
public class BluetoothOn{
public TextView textView1;
public void initializeBlue(View myView){
String BleisOn = "connect me now";
textView1 = (TextView)myView.findViewById(R.id.textView1);
textView1.setText(BleisOn);
}
}
注意:我在最初的帖子中出现了拼写错误,我将初始化声明为私有(private),但它应该是公共(public)的。我正在尝试尝试 luisdurazoa 建议,但我对界面不熟悉..
最佳答案
不,完全不需要,您不需要有一个单独的 Activity 来执行此操作,实际上您的方法是可以的,只是您不应该在 Activity 之外创建界面的成员,例如 TextView ,但是蓝牙可以放在外面,或者数据库连接等。
如果您尝试在 Activity 之外初始化 textView,而不是在类和 Activity 之间使用接口(interface),则很可能会遇到异常。
public interface IBluetooth{
public void initBluetooth();
}
然后...
public class MainActivity implements IBluetooth{
....
....
public void enablemyBluetooth(View view){
BluetoothOn ble = new BluetoothOn(this);
}
}
@Override
initBluetooth(){
textView1 =(TextView)findViewById(R.id.textView1);
textView1.setText(BleisOn);
}
您的蓝牙类(class)...
public class BluetoothOn {
BluetoothOn(IBluetooth callback){
//this will do the ui operations you need to do in the activity
callback.initBluetooth();
//do your stuff here
}
}
关于java - 创建一个没有用户界面的单独类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25588325/