【发布时间】:2021-01-05 06:01:25
【问题描述】:
我将在此处放置一个实际示例来说明正在发生的事情,因为现在我尝试解决问题已经有一段时间了,但没有任何结果。
这是我在不同活动或 java 文件中需要的那些方法/属性的公共类:
package com.mgs.bchat;
import android.content.Context;
import android.widget.Toast;
public class Util {
public static final String LOG_TAG = "BChat MSG";
public static final String SP_NAME = "BChatSharedPreferences";
public static final String SAVED_NICKNAME = "BChatSPSavedNickname";
public static final String INTENT_PARCELABLE = "BChatParcelableGeneric";
public static final String INTENT_DEVICE_NAME = "BChatParcelableName";
public static final String INTENT_DEVICE_MAC = "BChatParcelableMac";
public static final int MESSAGE_STATE_CHANGE = 1;
public static final int MESSAGE_READ = 2;
public static final int MESSAGE_WRITE = 3;
public static final int MESSAGE_DEVICE = 4;
public static final int MESSAGE_TOAST = 5;
public static final String DEVICE = "device_name";
public static void SimpleToast(Context context, String msg)
{
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
}
这是对其中一个成员变量的调用
package com.mgs.bchat;
import android.os.Handler;
import android.os.Handler.Callback;
import android.os.Message;
import android.view.View;
import android.widget.Toast;
import com.msg.bchat.Util;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import static com.mgs.bchat.Util.MESSAGE_WRITE;
public interface ChatHandler extends Handler.Callback {
@Override
public boolean handleMessage( Message message) {
switch (message.what){
case Util.MESSAGE_STATE_CHANGE:
switch (message.arg1){
case ChatController.STATE_CONNECTED:
setStatus(getString(R.string.stateConnected)+ connectingDevice.getName());
break;
.
.
.
}
}
我必须使用 class.attr 表示法或按属性导入,就像上面的那样
import static com.mgs.bchat.Util.MESSAGE_WRITE;
通过按 ALT+Enter 包含 MESSAGE_WRITE 时由 android studio 自动创建。
现在,MESSAGE_WRITE 是公共的,在公共类中,并且在公共接口中使用(但您知道它也可以是私有接口/类,不会有任何区别)。如果这是纯 java,我没有问题,但 android studio 似乎不喜欢 java 访问说明符和包。 为什么我不能像在 java 中那样只键入 MESSAGE_WRITE,而是必须调用它的类或导入该死的属性?
我为此发疯了,请帮助我。我知道访问说明符和可见性在 java 中是如何工作的,这种情况对我来说是个谜,请证明我是个白痴,因为无法阅读或告诉我这是 android studio 的一个可怕的错误/“功能”
感谢您的宝贵时间
【问题讨论】:
标签: java android-studio