0

这是我的代码。我应该更改或添加什么以转到另一个布局?我正在做 QR 码扫描仪,当它扫描时,如果代码为“1234”,它将转到新的布局名称为 abcd.xml。

package wj.com;

import android.app.Activity;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class OCTotActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}
public void onClick (View view){
    IntentIntegrator integrator = new IntentIntegrator(this);
    integrator.initiateScan();
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
      IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
      if (scanResult != null) {
        // handle scan result
          String barcode;

          barcode = scanResult.getContents();{
              if (barcode.equals("1234")){
                  setContentView(R.layout.abcd);
              }

              }

          EditText etBarcode = (EditText) findViewById(R.id.etBarcode);

          etBarcode.setText(barcode);
      }

 }
}
4

1 回答 1

0

最简单的方法是将 main 和 abcd 都嵌套在FrameLayout中。FrameLayout 是一堆子视图,一次可以显示其中一个。

子视图绘制在堆栈中,最近添加的子视图在顶部。

这是一个布局的示例部分,它将利用 FrameLayout 并重用您现有的布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <include android:id="@+id/main" layout="@layout/main" />
    <include android:id="@+id/abcd" layout="@layout/abcd" />
</FrameLayout>

然后在 onCreate 中,找到 abcd 并将其可见性设置为 View.INVISIBLE:

findViewById(R.id.abcd).setVisibility(View.INVISIBLE);

当您的条形码等于 1234 时,请执行以下操作:

// Show the abcd layout
findViewById(R.id.abcd).setVisibility(View.VISIBLE);
// Hide the main layout
findViewById(R.id.main).setVisibility(View.INVISIBLE);
于 2012-10-22T01:35:10.123 回答