下面我使用 zxing 库创建了一个二维码生成器。它现在的工作方式是用户将文本输入到editText 中,当他们点击Generate 按钮时,它会显示带有该文本的 QR 码。
我的问题是,有没有办法让我更改下面的代码,以便它获取当前的用户 ID (当用户注册时来自 firebase 身份验证)并将其打印到 editText 按钮?
我的目标是让 QR 码获取当前登录的用户并从Firebase获取他们的userID ,并仅基于 userID 创建一个 QR 码。
如果是这样,我很感激任何帮助,或者如果他们是我接受建议的更简单的方法 - 在此先感谢。
二维码.java
public class CodeQR extends AppCompatActivity {
EditText User_txt;
Button generateBtn;
ImageView qrImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_code_q_r);
User_txt = (EditText)findViewById(R.id.user_id);
generateBtn = (Button)findViewById(R.id.generate_btn);
qrImage = (ImageView)findViewById(R.id.imageview);
generateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
try{
BitMatrix bitMatrix = multiFormatWriter.encode(User_txt.getText().toString(),BarcodeFormat.QR_CODE,500,500);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
qrImage.setImageBitmap(bitmap);
}catch (Exception e){
e.printStackTrace();
}
}
});
}
}
二维码.xml
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="413dp"
android:layout_height="160dp"
android:layout_weight="1"
android:background="@drawable/header_menu"
android:gravity="bottom"
android:orientation="vertical"
android:padding="12dp"
tools:ignore="MissingConstraints">
<TextView
android:id="@+id/code_txt"
android:layout_width="281dp"
android:layout_height="64dp"
android:text="QR Code"
android:textColor="#000000"
android:textSize="30sp" />
</LinearLayout>
<EditText
android:id="@+id/user_id"
android:layout_width="match_parent"
android:layout_height="104dp"
android:hint="Enter your UserID"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.287" />
<Button
android:id="@+id/generate_btn"
android:layout_width="178dp"
android:layout_height="84dp"
android:layout_gravity="center"
android:gravity="center"
android:text="GET QR Code"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.536"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.459" />
<ImageView
android:id="@+id/imageview"
android:layout_width="281dp"
android:layout_height="245dp"
android:layout_gravity="center"
android:background="#ffffff"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.569"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.82" />
</androidx.constraintlayout.widget.ConstraintLayout>