Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
Android 在1个活动中包含2个活动的内容_Android_Android Activity - Fatal编程技术网

Android 在1个活动中包含2个活动的内容

Android 在1个活动中包含2个活动的内容,android,android-activity,Android,Android Activity,我有两个活动(让我们把它们的布局称为活动1和活动2)。两者都使用单独的XML模板和单独的活动 在其中一个文件的onCreate(Bundle savedInstanceState)中,我调用setContentView(R.layout.activity_one) 此布局中的一个子视图是线性布局。我想把R.layout.activity_two的内容放在这个LinearLayout中,如果可能的话,使用它的activity类(onClickListeners等)中的代码 我想这样做的原因是,我正

我有两个活动(让我们把它们的布局称为活动1和活动2)。两者都使用单独的XML模板和单独的活动

在其中一个文件的
onCreate(Bundle savedInstanceState)
中,我调用
setContentView(R.layout.activity_one)

此布局中的一个子视图是线性布局。我想把R.layout.activity_two的内容放在这个LinearLayout中,如果可能的话,使用它的activity类(onClickListeners等)中的代码

我想这样做的原因是,我正在构建的应用程序的平板电脑版本应该显示来自两个视图的数据

这可能吗?我该怎么做


谢谢:)

您应该使用片段,使用片段,您将能够拥有两个单独的布局文件,两个单独的片段-这将与您当前的活动非常相似(将活动转换为片段非常容易),并且您还需要包含这两个片段的额外活动

您仍然可以让当前活动显示其布局,只需为每个此类活动创建FragmentActivity,并显示适当的片段

另一个解决方案可能是使用布局包含标记,它允许将一个布局包含到另一个布局中

顺便说一句,引入片段是为了更容易地构建应用程序的平板电脑版本(大屏幕),同时仍然能够显示手机的UI版本(小屏幕)。

//试一下我刚才给出的简单演示
**activity_one.xml**
**activity_two.xml**
**MyActivity.java**
公共类MyActivity扩展了活动{
私人按钮btnActivityOne;
专用按钮btnActivityTwo;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_one);
btnActivityOne=(按钮)findViewById(R.id.btnActivityOne);
btnActivityTwo=(按钮)findViewById(R.id.btnActivityTwo);
btnActivityOne.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Toast.makeText(MyActivity.this,“活动一个按钮”,Toast.LENGTH_SHORT.show();
}
});
btnActivityTwo.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Toast.makeText(MyActivity.this,“活动二按钮”,Toast.LENGTH_SHORT.show();
}
});
}
}

使用活动本身的简单工作

关于你的第一个问题

R.layout.activity\u二的内容在您的线性布局中

使用
标记进行该操作

例如:
在您的
线性布局中

关于你的第二个问题

如果可能,使用其活动类(onClickListeners等)中的代码。


创建一个类
Extends Activity
,添加所有您需要的侦听器,并将该类命名为
BaseActivity
,并扩展BaseActivity,而不是为您的两个活动创建活动。

无需为该活动复制整个代码,只需使用标记即可
// try this way here i just gave simple demo

**activity_one.xml**
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:gravity="center"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/btnActivityOne"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Activity One"/>

    <include
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        layout="@layout/activity_two"/>

</LinearLayout>

**activity_two.xml**
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <Button
        android:id="@+id/btnActivityTwo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Activity Two"/>
</LinearLayout>

**MyActivity.java**
public class MyActivity extends Activity {
    private Button btnActivityOne;
    private  Button btnActivityTwo;
    @Override
    protected void onCreate(Bundle savedInstanceState){

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_one);
        btnActivityOne = (Button) findViewById(R.id.btnActivityOne);
        btnActivityTwo = (Button) findViewById(R.id.btnActivityTwo);

        btnActivityOne.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MyActivity.this,"Activity One Button",Toast.LENGTH_SHORT).show();
            }
        });

        btnActivityTwo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MyActivity.this,"Activity Two Button",Toast.LENGTH_SHORT).show();
            }
        });

    }
}