Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设置文本编辑文本_Java_Android_Android Studio - Fatal编程技术网

Java 设置文本编辑文本

Java 设置文本编辑文本,java,android,android-studio,Java,Android,Android Studio,我正在开发QR扫描仪应用程序。成功扫描后,扫描的信息进入警报框。从那里,我需要信息转到EditText字段或跳过整个警报对话框。必须转到EditText的结果位于下面的函数中 public class MainActivity extends Activity implements ZXingScannerView.ResultHandler { private ZXingScannerView mScannerView; EditText editText; @SuppressLint("

我正在开发QR扫描仪应用程序。成功扫描后,扫描的信息进入警报框。从那里,我需要信息转到EditText字段或跳过整个警报对话框。必须转到EditText的结果位于下面的函数中

public class MainActivity extends Activity implements ZXingScannerView.ResultHandler {
private ZXingScannerView mScannerView;


EditText editText;
@SuppressLint("CutPasteId")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    editText = findViewById(R.id.editText4);


    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(R.id.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();

        }
    });
}


public void onClick(View v){
    mScannerView = new ZXingScannerView(this);
    setContentView(mScannerView);
    mScannerView.setResultHandler(this);
    mScannerView.startCamera();


}

@Override
protected void onPause() {
    super.onPause();
    mScannerView.stopCamera();

}



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


    //editText.setText(result.toString());
   // editText.invalidate();
    mScannerView.stopCamera(); //setContentView(R.layout.activity_main);
    //resume scanning
    //mScannerView.resumeCameraPreview(this);
    updateScannerData(1,result.getText());



}



public void updateScannerData(int scanType, String scannedCode){
   editText.setText(scannedCode);
   //editText.invalidate();
   //editText.requestLayout();

    //finish();
    //startActivity(getIntent());
    this.recreate();


    }
}

我只使用一个主要活动,这是EditText的XML,结果必须放在那里

<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="textPersonName"
    android:visibility="visible"
    tools:backgroundTint="@android:color/holo_red_light" />

非常感谢您的帮助。提前感谢。

这里可以有多种方法,您可以:

Edittext edt = (EditText)findViewById(R.id.viewid);
edt.setText(result.getText());
或者,如果您需要多次频繁更新此文本视图,请在主活动UpdateScaneReditextString值中生成方法;从你的片段中调用它

如果主活动中有HandlerResult,只需在活动中创建方法:

@Override  // move your setContentView() method inside activity oncreate()
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
}

public void handleResult(Result result) {
   //handle result
Log.v("handleResult", result.getText());
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Scan Result");
builder.setMessage(result.getText());
AlertDialog alertDialog = builder.create();
alertDialog.show();

mScannerView.stopCamera();
updateScannerData(1,result.gettext()); 


//resume scanning
mScannerView.resumeCameraPreview(this);

}
方法实现:

private void updateScannerData(int scanType, String scannedCode){
edt.setText(scannedCode);//edt is the editTextView that you have declared in you xml.
}

希望能有所帮助。

所以如果我理解正确,您尝试扫描二维码,然后将其设置为EditText2,然后再次扫描产品并尝试在EditText4中进行设置

所以试着让一些人这样想:

public void handleResult(Result result) {
    //handle result
    Log.v("handleResult", result.getText());

    if(edittext2.getText().equals("")){
    edittext2.setText(result.getText());
    }else{
     edittext4.setText(result.getText())
      }

    mScannerView.stopCamera(); setContentView(R.layout.activity_main);
    //resume scanning
    mScannerView.resumeCameraPreview(this);

}

很好,请接受我的回答,谢谢我。可能对其他人有帮助。这意味着您试图设置文本的editText为空,这意味着它没有像>EditTextfindViewByIdR.id.viewid;不,不幸的是,错误nullpointer并没有消失,但在EditTextOK中没有设置任何内容,步骤1:生成一个全局变量Edittext edt;步骤2:在setContentViewR.layout.activity\u main下面的oncreate中添加以下行;edt=EditTextfindViewByIdR.id.viewid;其中R.id.viewid是在xml中为result.getText的edt.check值定义的id名称;