Нажмите, чтобы открыть новое действие с текстом из документа в предыдущем действии - PullRequest
0 голосов
/ 28 августа 2018

Попытка добавить в мой 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);
}

}

1 Ответ

0 голосов
/ 28 августа 2018

Вот ответ: я звонил 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();
}
...