Вкратце: Могу ли я запустить другое действие в onCreate () моей MainActivity и отобразить вновь созданное действие в макете MainActivity?
Я хочу начать представление (DecoratedBarcodeView ) прямо в начале MainActivity. Мой макет выглядит примерно так:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.journeyapps.barcodescanner.DecoratedBarcodeView
android:id="@+id/barcode_scanner"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_above="@+id/buttonsLayout"
android:layout_alignParentTop="true">
</com.journeyapps.barcodescanner.DecoratedBarcodeView>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:id="@+id/buttonsLayout"
android:layout_toLeftOf="@+id/centerHorizont">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pause"
android:onClick="pause" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Resume"
android:onClick="resume" />
</LinearLayout>
</RelativeLayout>
Я знаю, что могу начать занятие так:
Intent intent = new Intent(this, CustomActivity.class);
startActivity(intent);
Но для этого мне нужен класс CustomActivity
, который я хочу избавьтесь и поместите его содержимое в MainActivity.
Его метод onCreate () выглядит следующим образом:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
barcodeView = (DecoratedBarcodeView) findViewById(R.id.barcode_scanner);
Collection<BarcodeFormat> formats = Arrays.asList(BarcodeFormat.QR_CODE, BarcodeFormat.CODE_39);
barcodeView.getBarcodeView().setDecoderFactory(new DefaultDecoderFactory(formats));
barcodeView.initializeFromIntent(getIntent());
barcodeView.decodeContinuous(callback);
}
Так что, по сути, я хочу сделать это barCodeView.decodeContinuous(callback)
изнутри моей MainActivity. Но для этого мне, очевидно, нужен Intent.
Итак, каков наилучший подход для запуска Activity и отображения его внутри моей MainActivity?