【问题标题】:getApplicationContext() not working anymoregetApplicationContext() 不再工作
【发布时间】:2019-03-08 14:15:37
【问题描述】:

我有以下问题,我不知道如何通过它。我搜索了一个答案,但没有一个有这个问题。我有以下内容:

public class RomanianIDFrontSideRecognitionResultExtractor extends MrtdResultExtractor<RomaniaIdFrontRecognizer.Result, RomaniaIdFrontRecognizer> {

    static String nume;
    static String prenume;
    static String nr;
    static String serie;
    static String cnp;
    static String nat;
    static String locn;
    static String adresa;
    static String emis;
    static String sex;
    static String start;
    static String stop;
    static String usern;
    private Context mContext;
    static String a;
    static Toast toast;

    @SuppressLint("InlinedApi")
    @Override
    protected void extractData(RomaniaIdFrontRecognizer.Result result) {
        super.extractData(result);
        add(R.string.PPLastName, result.getLastName());
        add(R.string.PPFirstName, result.getFirstName());
        add(R.string.PPIdentityCardNumber, result.getCardNumber());
        add(R.string.PPSeries, result.getIdSeries());
        add(R.string.PPCNP, result.getCnp());
        add(R.string.PPNationality, result.getNonMRZNationality());
        add(R.string.PPPlaceOfBirth, result.getPlaceOfBirth());
        add(R.string.PPAddress, result.getAddress());
        add(R.string.PPIssuingAuthority, result.getIssuedBy());
        add(R.string.PPSex, result.getNonMRZSex());
        add(R.string.PPValidFrom, result.getValidFrom());
        add(R.string.PPValidUntil, result.getValidUntil());

        //  Toast.makeText(getApplicationContext(),result.getLastName() ,
        //         Toast.LENGTH_SHORT).show();

        //  Intent myIntent = new Intent(getApplicationContext(), ResultActivity.class);
        //    getApplicationContext().startActivity(myIntent);



        SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode
        SharedPreferences.Editor editor = pref.edit();


        SharedPreferences pref2 = getApplicationContext().getSharedPreferences("MyPreff", 0);
        usern= pref2.getString("username", null);

        editor.putString("nume", result.getLastName());
        editor.putString("prenume", result.getFirstName());
        editor.putString("nr", result.getCardNumber());
        editor.putString("serie", result.getIdSeries());
        editor.putString("cnp", result.getCnp());
        editor.putString("nationalitate", result.getNonMRZNationality());
        editor.putString("locn", result.getPlaceOfBirth());
        editor.putString("adresa", result.getAddress());
        editor.putString("emis", result.getIssuedBy());
        editor.putString("sex", result.getNonMRZSex());
        editor.putString("start", String.valueOf(result.getValidFrom()));
        editor.putString("sfarsit", String.valueOf(result.getValidUntil()));// Storing string
        editor.commit(); // commit changes



    }

这部分代码运行正常。我可以将变量从这个活动发送到另一个活动。但是昨天, getApplicationContext() 不再工作了。昨天在我看来已被弃用,我错误地点击了忽略此警告。现在,因此不再发送变量。我只收到空变量。如何绕过并使 getApplicationContext() 再次工作?在其他文件中工作正常,仅在此文件中不起作用。它似乎是斜体字。你见过这样的行为吗?

【问题讨论】:

  • 我看到了那个问题,不是同一个问题。
  • 你的问题是一样的。 getApplicationContext()Context 类的一个方法,所以你需要Context 对象来调用getApplicationContext()..
  • 如果您阅读所有问题,您会发现这是有效的。

标签: android


【解决方案1】:

我不知道这是否可行,但您可以尝试一下。在您的 extractData 方法中添加 Context context 然后执行

SharedPreferences pref = context.getApplicationContext().getSharedPreferences("MyPref", 0);
SharedPreferences.Editor editor = pref.edit();

然后如果你想使用它在另一个活动中你称之为extractData(result,this)

【讨论】:

  • 你只是抄我写的?
  • @Bibu 不检查它很好
  • 你从哪里获得了恒定的上下文?
  • @Bibu extractData(RomaniaIdFrontRecognizer.Result result, Context context)
猜你喜欢
  • 1970-01-01
  • 2013-03-16
  • 2012-04-11
  • 2018-06-01
  • 2016-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多