New Value EditText未显示,没有任何错误



EDIT:顺便说一句,如果我在范围内硬编码edt4.setText("任何文本"(,它会显示值

编辑2:尝试重建/清理项目,这可能是settext方法中的一个错误,看起来我做得对。当我用settext 查看其他代码时

编辑3:startactivityforresult可能是我的答案,我提出了另一个与我想尝试什么有关的问题,我仍然没有找到另一个解决方案,已经坚持了一个星期:这是我的问题的链接。我可以将startActivityForResult与一个活动一起使用吗?

编辑4:现在尝试使视图可见和不可见

我读过每一篇关于stackoverflow、dreamincode等相关内容的文章,但我找不到任何人知道我问题的答案。

我有一个qr扫描仪,成功扫描后,结果需要放在名为editText4的EDIT TEXT字段中,我的代码没有出错,但没有显示任何值。

我在不同的论坛上发帖,但都无济于事(https://www.dreamincode.net/forums/topic/412000-settext-is-not-showing-set-value-in-edittext-in-gui/page__st__15__gopid__2372214&条目2372214(,正如您可以看到的注释代码。这也是我尝试过的,我想我以某种方式将handle-result方法放在了范围内。

注意:Log.v输出的结果非常好,但当我尝试其他任何结果时,它就是不起作用或显示

ps:我是java 的初学者

感谢您的帮助

这是我的主要活动

` public class MainActivity extends Activity implements 
ZXingScannerView.ResultHandler {
Button sendButton;
EditText edt4;
EditText edt2;
private ZXingScannerView mScannerView;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

edt4 = findViewById(R.id.editText4);
mScannerView = findViewById(xmlScannerView);
mScannerView.setFormats(ZXingScannerView.ALL_FORMATS);
mScannerView.setResultHandler(this);
mScannerView.startCamera();



EditText delete2;
Button button3;
button3 = findViewById(R.id.button3);
delete2 = findViewById(R.id.editText2);
final EditText finalEdittext = delete2;
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Clear EditText
finalEdittext.getText().clear();
}
});
EditText delete4;
Button button4;
delete4 = findViewById(editText4);
button4 = findViewById(R.id.button4);
final EditText finalEdittext1 = delete4;
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Clear EditText
finalEdittext1.getText().clear();
}
});

}

@Override
public void onPause() {
super.onPause();
mScannerView.stopCamera();           // Stop camera on pause
}

public void onClick(View v){
RelativeLayout someid = findViewById(R.id.someId);
mScannerView.setVisibility(View.VISIBLE);
someid.setVisibility(View.INVISIBLE);
}

// EditText edt4;
@Override
public void handleResult(final Result result) {
//handle result
Log.v("handleResult", result.getText());

edt4 = findViewById(editText4);
edt4.setText(result.getText());
//edt4.setText(String.valueOf(result.getText()));
// edt4.setText(new 
StringBuilder().append("Resultaat:").append(result.getText()).toString());


}
`

这是xml:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:background="@mipmap/ic_launcher_foreground">

android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true">
<me.dm7.barcodescanner.zxing.ZXingScannerView
android:id="@+id/xmlScannerView"
android:visibility="gone"
android:layout_height="match_parent"
android:layout_width="match_parent" />
<RelativeLayout
android:id="@+id/someId"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editText4"
android:layout_width="match_parent"
android:layout_height="62dp"
android:layout_marginTop="67dp"
android:ems="10"
android:hint="@string/scan_locatie"
android:inputType="text"
android:text=""
tools:backgroundTint="@android:color/holo_red_light" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText4"
android:layout_centerHorizontal="true"
android:background="@android:color/holo_red_light"
android:onClick="onClick"
android:text="@string/scan_qr"
tools:text="scan qr code" />
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="61dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="197dp"
android:ems="10"
android:hint="@string/scan_order"
android:inputType=""
android:visibility="visible"
tools:backgroundTint="@android:color/holo_red_light" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText2"
android:layout_centerHorizontal="true"
android:background="@android:color/holo_red_light"
android:onClick="onClick"
android:text="@string/scan_qr"
tools:text="scan qr code" />
<Button
android:id="@+id/sendButton"
android:layout_width="157dp"
android:layout_height="32dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="72dp"
android:background="@android:color/holo_red_light"
android:text="@string/button"
tools:text="Versturen.." />

<Button
android:id="@+id/button3"
android:layout_width="40dp"
android:layout_height="38dp"
android:layout_alignBaseline="@+id/editText2"
android:layout_alignParentEnd="true"
android:background="@android:drawable/ic_delete" />
<Button
android:id="@+id/button4"
android:layout_width="39dp"
android:layout_height="37dp"
android:layout_alignBaseline="@+id/editText4"
android:layout_alignParentEnd="true"
android:background="@android:drawable/ic_delete" />
</RelativeLayout>

EDIT:5还更改了XML和main,仍然不起作用:(

尝试删除recreate();

您在设置值后重新创建活动,因此前一个值将丢失

我认为result.getText()无论如何都是String,所以您可以更改以下行:

edt4.setText(String.valueOf(result.getText()));

收件人:

edt4.setText(result.getText());

之后,您调用updateScannerData,它也再次写入EditText,但来自UI-Thread。我建议也删除UI-Thread代码,因为我认为该代码无论如何都在该Thread上运行。

您可以使用

edt4.clear();

edt4.setText("");

相关内容

最新更新