【问题标题】:How to get the result from onActivityResult method for sharedpreferences如何从 onActivityResult 方法获取共享首选项的结果
【发布时间】:2016-02-12 08:55:17
【问题描述】:

在 qr 扫描仪阅读器中,单击按钮后将打开相机并扫描结果。然后它将使用 onactivityresult 方法显示结果。 如何从onActivityResult 方法中获得该结果,并在共享首选项中使用它?以下是我的代码:

   @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
    if (result != null) {
        String scanContent = result.getContents();
        customerSno.setText(" " + scanContent);
    } else {
        Toast.makeText(getApplicationContext(),"Cancelled", Toast.LENGTH_LONG).show();

【问题讨论】:

  • 首先什么是 IntentIntegrator?其次,您无法直接从内置摄像头获取二维码内容

标签: java android sharedpreferences onactivityresult


【解决方案1】:

将结果保存到SharedPreference

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("result", scanContent);
editor.commit();

SharedPreference检索

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String result = prefs.getString("result", "No saved result");

context 是您的活动上下文。如果此代码在任何活动中,请使用 this

【讨论】:

  • onactivityresult方法不需要写任何东西
  • 您想将在onActivityResult 中得到的结果保存到SharedPreference 中,对吧?
  • 然后只需从方法onActivityResult 调用第一个代码块(我的答案)。或者将该代码块放在一个方法中并调用该方法。
  • 你能把你的emailId发给我吗
【解决方案2】:
     @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode==IntentIntegrator.REQUEST_CODE){
            IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
            if (result != null) {
                String scanContent = result.getContents();
                customerSno.setText(" " + scanContent);

                SharedPreferences prefs =  PreferenceManager.getDefaultSharedPreferences(this);
                SharedPreferences.Editor editor = prefs.edit();
                editor.putString("result", scanContent);
                editor.commit();

            } else {
                Toast.makeText(getApplicationContext(),"Cancelled", Toast.LENGTH_LONG).show();
            }
        }
      }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 2015-04-11
    相关资源
    最近更新 更多