Java 在其他文件中引用方法

Java 在其他文件中引用方法,java,android,oop,methods,Java,Android,Oop,Methods,我正在尝试在PermissionsSMHelper类中使用getPermissiontoReadSMS和onRequestPermissionsResult方法。当我在newMessagePage.java文件和homePage.java文件的onCreate方法中引用它们时,每次都会出现无法解析方法错误。我想不出是怎么回事。如果有人能帮忙,我将不胜感激 permissionssmshelper.java homePage.java 你做错了。您所谓的PermissionsMSHelper类正在

我正在尝试在PermissionsSMHelper类中使用getPermissiontoReadSMS和onRequestPermissionsResult方法。当我在newMessagePage.java文件和homePage.java文件的onCreate方法中引用它们时,每次都会出现无法解析方法错误。我想不出是怎么回事。如果有人能帮忙,我将不胜感激

permissionssmshelper.java

homePage.java


你做错了。您所谓的PermissionsMSHelper类正在扩展HomePage,您正在HomePage中创建PermissionsMSHelper的实例,并且在NewMessagePage中,您间接引用了另一个类中的活动,这将导致内存泄漏。从PermissionsSMHelper中删除extends主页,并在构造函数中传递上下文,或者在PermissionsSMSHelper中使方法保持静态,并在每个方法调用中传递上下文。您的命名约定太糟糕了

欢迎使用StackOverflow。不幸的是,这既不是免费的设计/编码,也不是调试服务、教程网站,也不是web搜索的替代品。我们可以帮助你解决问题,但你的工作是首先解决这个问题,包括基础知识。
import android.Manifest;
import android.content.pm.PackageManager;
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
import android.widget.Toast;

public class permissionsSMSHelper extends homePage {

public int READ_SMS_PERMISSIONS_REQUEST;

public permissionsSMSHelper(int req) {
    READ_SMS_PERMISSIONS_REQUEST = req;
}

public void getPermissionToReadSMS(int reqVal) {
    READ_SMS_PERMISSIONS_REQUEST = reqVal;

    if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS)
            != PackageManager.PERMISSION_GRANTED) {
        if (shouldShowRequestPermissionRationale(
                Manifest.permission.READ_SMS)) {
            Toast.makeText(this, "Please allow permission", Toast.LENGTH_SHORT).show();
        }
        requestPermissions(new String[]{Manifest.permission.READ_SMS}, reqVal);
    }
}

public RequestPermissionsResult(int req) {
    READ_SMS_PERMISSIONS_REQUEST = req;
}

public void onRequestPermissionsResult(int requestCode,
                                       int requestNum,
                                       @NonNull String permissions[],
                                       @NonNull int[] grantResults) {
    READ_SMS_PERMISSIONS_REQUEST= requestNum;

    if(requestCode == requestNum) {
        if(grantResults.length == 1 &&
                grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            Toast.makeText(this, "Read SMS permission granted", Toast.LENGTH_SHORT).show();
            refreshSmsInbox();
        }else {
            Toast.makeText(this, "Read SMS permission denied", Toast.LENGTH_SHORT).show();
        }
    }else {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
}
}
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home_page);

        mDrawerList = (ListView)findViewById(R.id.navList);
        mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);

        messages = (ListView) findViewById(R.id.messages);
        arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, smsMessagesList);
        messages.setAdapter(arrayAdapter);

        if(ContextCompat.checkSelfPermission(this,Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED) {

            permissionsSMSHelper SMScheck = new permissionsSMSHelper(1);

            SMScheck.getPermissionToReadSMS(1);
            SMScheck.onRequestPermissionsResult(1);

        }else {
            refreshSmsInbox();
        }

        addDrawerItems();
        FABListener();
    }
import android.Manifest;
import android.content.pm.PackageManager;
import android.support.v4.content.ContextCompat;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class newMessagePage extends homePage {

SmsManager smsManager = SmsManager.getDefault();
EditText input;

public void onSendClick(View view) {

    if (ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS)
            != PackageManager.PERMISSION_GRANTED) {

        permissionsSMSHelper SMScheck = new permissionsSMSHelper(1);

        SMScheck.getPermissionToReadSMS(1);
        SMScheck.onRequestPermissionsResult(1);

    }else {

        smsManager.sendTextMessage("17739965441", null, input.getText().toString(), null, null);
        Toast.makeText(this, "Message sent!", Toast.LENGTH_SHORT).show();
    }
}

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

    input = (EditText) findViewById(R.id.input);
}
}