Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android studio和公共类/属性存在问题_Java_Android Studio - Fatal编程技术网

Java android studio和公共类/属性存在问题

Java android studio和公共类/属性存在问题,java,android-studio,Java,Android Studio,我将在这里举一个实际的例子来说明正在发生的事情,因为现在是我试图解决问题的时候了,但没有结果 这是一个公共类,用于我在不同活动或java文件中需要的方法/属性: package com.mgs.bchat; import android.content.Context; import android.widget.Toast; public class Util { public static final String LOG_TAG = "BChat MSG";

我将在这里举一个实际的例子来说明正在发生的事情,因为现在是我试图解决问题的时候了,但没有结果

这是一个公共类,用于我在不同活动或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;
android studio在按ALT+Enter键写入消息时自动创建

现在,MESSAGE_WRITE是公共的,在一个公共类中,并且在一个公共接口中使用(但您知道它也可以是一个私有接口/类,这不会有什么区别)。如果这是纯java,我就不会有问题,但android studio似乎不喜欢java访问说明符和包。 为什么我不能像在java中那样键入MESSAGE_WRITE,而是必须调用它的类或导入该死的属性

我快疯了,请帮帮我。我知道访问说明符和可见性在java中是如何工作的,这个案例对我来说是个谜,请证明我是个白痴,因为我不能阅读或告诉我这是android studio的一个奇怪的bug/“功能”


感谢您抽出时间

在您的软件包规格中,您有一个输入错误。您可以导入msg,但包名是mgs。

使用:import static com.mgs.bchat.util.*;我可以使用静态属性。我觉得自己很笨,因为之前没有尝试过这个(可能我使用了静态,但我犯了一些其他错误)。多谢各位much@samuele55598如果答案对你有帮助,你可以接受。附近有一个Vi标志。