首页 > 解决方案 > 单击以使用先前活动中的文档中的文本打开新活动

问题描述

尝试添加到我的 OnClickListener 中,因此当我从 Firestore 中单击一个文档时,它会从中检索文本并将其放入下一个活动的 TextView 中。下面是我的代码:

 @Override
        public void onItemClick(Session documentSnapshot, int position) {

            String session = documentSnapshot.getDocumentID();
            startActivity(new Intent(SessionManagement.this, QRGenerator.class)
                    .putExtra("module_code", documentSnapshot.Id));

            Toast.makeText(SessionManagement.this, "Session ID: " +session,Toast.LENGTH_SHORT).show();
        }
    });
}

这是我要在其上显示文本的活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_qrgenerator);
    text = (EditText) findViewById(R.id.edit_text_generate);
    gen_btn = (Button)findViewById(R.id.GENERATE);
    image = (ImageView) findViewById(R.id.imageQR);

    gen_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            text2Qr = text.getText().toString().trim();
            MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
            try {
                BitMatrix bitMatrix = multiFormatWriter.encode(text2Qr, BarcodeFormat.QR_CODE,200,200);
                BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
                Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
                image.setImageBitmap(bitmap);

            } catch (WriterException e){
                e.printStackTrace();
            }

            getIncomingIntent();
        }
    });
}

private void getIncomingIntent(){
    if (getIntent().hasExtra("module_code")){
        String moduleCode = getIntent().getStringExtra("module_code");

        setModuleCode(moduleCode);
    }
}

private void setModuleCode(String moduleCode){
    TextView  module = findViewById(R.id.edit_text_generate);
    module.setText(moduleCode);
}

}

标签: androidgoogle-cloud-firestoreonclicklistener

解决方案


这是答案:我在错误的地方调用了 getIncomingIntent

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qrgenerator);
text = (EditText) findViewById(R.id.edit_text_generate);
gen_btn = (Button)findViewById(R.id.GENERATE);
image = (ImageView) findViewById(R.id.imageQR);

gen_btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        text2Qr = text.getText().toString().trim();
        MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
        try {
            BitMatrix bitMatrix = multiFormatWriter.encode(text2Qr, BarcodeFormat.QR_CODE,200,200);
            BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
            Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
            image.setImageBitmap(bitmap);

        } catch (WriterException e){
            e.printStackTrace();
        }


    }
});  
getIncomingIntent();
}

推荐阅读