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は子ビューのスタックであり、一度に1つを表示できます。

子ビューはスタックに描画され、最後に追加された子が一番上に表示されます。

これは、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 に答える