0

画面に 2 つの異なるアクティビティを同時に表示したいと考えています。を使用してそれを達成できるという印象を受けましたActivityGroup。そうですか?

アップデート

私はこのようにしてみました:

layout = (ListView) findViewById(R.id.wrapper_layout);

LocalActivityManager mgr = getLocalActivityManager();

Intent intent = new Intent(this, BenchMarker.class);

Window w = mgr.startActivity("BenchMarkerA", intent);
View wd = w != null ? w.getDecorView() : null;

if(wd != null) {
    layout.addView(wd);
}

しかし、NullPointerException投げられたActivityThread.performLaunchActivity()

4

1 に答える 1

1

はい、できます。解決策は後日書きます。

アップデート

方法は次のとおりです。

まず、 res/layout/multiview.xmlなどの適切なレイアウトが必要です。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:id="@+id/multiview_layout">
    <LinearLayout android:id="@+id/my_view_1"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:layout_weight="1">
    </LinearLayout>
    <LinearLayout android:layout_height="fill_parent"
        android:layout_width="fill_parent" android:layout_weight="1"
        android:id="@+id/my_view_2">
    </LinearLayout>
</LinearLayout>

そして、ランチャーの役割を果たす主なアクティビティでは:

public class MyMultiViewActivity extends ActivityGroup {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.multiview);
        layout = (LinearLayout) findViewById(R.id.multiview_layout);
        layout_s1 = (LinearLayout) findViewById(R.id.my_view_1);
        layout_s2 = (LinearLayout) findViewById(R.id.my_view_2);

        LocalActivityManager mgr = getLocalActivityManager();

        layout_s1.addView((mgr.startActivity("MyOtherActivityInstance1", new Intent(this, MyOtherActivity.class))).getDecorView());
        layout_s2.addView((mgr.startActivity("MyOtherActivityInstance2", new Intent(this, MyOtherActivity.class))).getDecorView());
    }

    LinearLayout layout;
    LinearLayout layout_s1;
    LinearLayout layout_s2;
}
于 2011-02-22T08:55:35.437 に答える