Android 如何从“活动结果”方法中获取共享首选项的结果

Android 如何从“活动结果”方法中获取共享首选项的结果,android,Android,我是android的初学者…在qr扫描器中点击按钮后它会扫描 并在活动中显示结果。我想将显示的结果显示到共享首选项中。有人能帮我吗 下面是我的代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_new_screen); button1 = (B

我是android的初学者…在qr扫描器中点击按钮后它会扫描 并在活动中显示结果。我想将显示的结果显示到共享首选项中。有人能帮我吗

下面是我的代码

   @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_new_screen);
    button1 = (Button) findViewById(R.id.button);
    customerSno = (TextView) findViewById(R.id.scanContent);

    button1.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            Intent i = new Intent(getApplicationContext(), IHomeActivity.class);

           startActivity(i);

        }
    });
}

private void setCustomerSerialNName(String s) {

String customerSNo = IHomeActivity._sharedPreferences.getString("customerSNo", "null");

SharedPreferences.Editor editor =IHomeActivity._sharedPreferences.edit();

    editor.putString("customerSNo",s);

    //editor.putString("customerPass", passcode);
    if (customerSNo.equals(s)) {
    } else {
        editor.putBoolean("custSNoAuthStatus", false);
    }
    editor.commit();
    LightManager.LightOp lightOp = new LightManager.LightOp();
    lightOp.setToWWWMode();
}





public void scanMarginScanner(View view) {
    IntentIntegrator integrator = new IntentIntegrator(this);
    integrator.setOrientationLocked(false);
    integrator.setCaptureActivity(SmallCaptureActivity.class);
    integrator.initiateScan();
}


@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();
    }
}

}

如果您想得到onActivityResult结果,则必须调用

startActivityForResult(intent, request_code);
在调用方活动中,并在调用活动中添加代码:

  Intent intent = new Intent();
    intent.putExtra("key", value);
    setResult(RESULT_OK, intent);
并完成呼叫活动

在onActivityResult方法中:

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);


    if (requestCode == request_code){
        if (resultCode == RESULT_OK){
           String value =  data.getExtras().getString("key");
        }
    }

}

使用此选项将您的号码保存到SharedReference中:

    SharedPreferences sp = this.getSharedPreferences("myPrefName", 0);
    SharedPreferences.Editor editor = sp.edit();
    editor.putInt("myPrefNumVarName", myPrefNumVarValue);
    editor.commit();
然后读取保存的值:

    sp = PreferenceManager.getDefaultSharedPreferences(this);
    String myValue = sp.getString("myPrefNumVarName", "none"); // second string is the return, used when nothing is returned from the first string

此解决方案将值保存为Int并读取为String,但这可能不是您想要的,可以根据您的需要轻松重新配置。

什么是CustomerNo?@pruthvi v reddy如果解决了您的问题,请检查答案是否正确。非常感谢。