Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.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 如何在活动的ontouch事件上添加布局?_Android_Android Layout - Fatal编程技术网

Android 如何在活动的ontouch事件上添加布局?

Android 如何在活动的ontouch事件上添加布局?,android,android-layout,Android,Android Layout,这是我的代码,我正试图在ontouch事件的运行时添加一个布局。 包装设计测试网 import android.app.Activity; import android.content.Context; import android.media.AudioManager; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.LayoutInflat

这是我的代码,我正试图在ontouch事件的运行时添加一个布局。 包装设计测试网

import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SeekBar;

public class DesingTesting extends Activity 
{
    FrameLayout albumframe;
    LinearLayout extraview;
    LinearLayout mainchield;
    boolean flag = true;
    LayoutInflater inflater;

    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        setContentView(R.layout.main);

        albumframe = (FrameLayout)findViewById(R.id.llAlbumview);
        extraview = (LinearLayout)findViewById(R.id.extraview);

        inflater=(LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mainchield=(LinearLayout)findViewById(R.id.mainchield);


        albumframe.setOnTouchListener(new View.OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {

                if(flag)
                {
                    inflater.inflate(R.id.mainchield,extraview);
                    extraview.addView(mainchield);

                flag = false;

                }
                else
                {
                    flag = true;
                }

                return false;
            }
        });
    }   

}
下面是我的main.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/mainlinear">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal" android:layout_width="fill_parent"
        android:layout_height="50dp" android:background="@drawable/header_bg">

        <LinearLayout android:orientation="horizontal"
            android:layout_width="fill_parent" android:layout_height="fill_parent">

            <ImageButton android:id="@+id/btnBack"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:layout_gravity="left" android:layout_marginLeft="10dp"
                android:background="@android:color/transparent" android:paddingTop="10dp"
                android:src="@drawable/back" />

            <LinearLayout android:layout_height="fill_parent"
                android:layout_width="wrap_content" android:layout_weight="1"
                android:gravity="center" android:orientation="vertical">

                <TextView android:layout_width="wrap_content"
                    android:layout_height="wrap_content" android:text="CMX"
                    android:textColor="#919191" android:textSize="12sp"
                    android:textStyle="bold" android:singleLine="true" />

                <TextView android:layout_width="wrap_content"
                    android:layout_height="wrap_content" android:text="Quanta"
                    android:textColor="#ffffff" android:textSize="12sp"
                    android:textStyle="bold" android:singleLine="true" />

                <TextView android:layout_width="wrap_content"
                    android:layout_height="wrap_content" android:text="Talvikuningas"
                    android:textColor="#919191" android:textSize="12sp"
                    android:textStyle="bold" android:singleLine="true" />

            </LinearLayout>

            <ImageButton android:id="@+id/btnMore"
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                android:layout_gravity="right" android:src="@drawable/more"
                android:paddingLeft="4dp" android:paddingTop="10dp"
                android:paddingRight="10dp" android:background="@android:color/transparent" />

        </LinearLayout>

    </LinearLayout>

    <FrameLayout android:id="@+id/llAlbumview"
        android:layout_width="fill_parent" 
        android:layout_height="360dp"
        android:background="@drawable/chalte" 
        android:gravity="center"
        >
        <LinearLayout android:id="@+id/extraview"
        android:orientation="horizontal" 
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:background="@android:color/transparent">
        </LinearLayout>

        <RelativeLayout android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:paddingTop="315dp"
            android:background="@android:color/transparent">

            <LinearLayout android:orientation="horizontal"
                android:layout_height="wrap_content" android:layout_width="fill_parent"
                android:layout_gravity="bottom" android:id="@+id/l_playercntrl"
                android:background="@drawable/player_control_bg">

                <ImageButton android:id="@+id/imgprevious" android:src="@drawable/previous"
                    android:background="@android:color/transparent"
                    android:layout_width="wrap_content" android:layout_height="wrap_content"
                    android:layout_marginLeft="30dp" android:layout_marginRight="37dp" />

                <ImageButton android:id="@+id/imgpause"
                    android:background="@android:color/transparent"
                    android:layout_height="wrap_content" android:layout_width="wrap_content"
                    android:layout_marginRight="35dp" android:src="@drawable/play" />

                <ImageButton android:id="@+id/imgnext" android:src="@drawable/next"
                    android:background="@android:color/transparent"
                    android:layout_marginLeft="2dp" android:layout_height="wrap_content"
                    android:layout_width="wrap_content" />
            </LinearLayout>
        </RelativeLayout>

    </FrameLayout>

    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:gravity="center|bottom"
        android:paddingBottom="4dp">

        <SeekBar android:id="@+id/sbVolume" android:padding="4dip"
            android:progressDrawable="@drawable/skbar" android:maxHeight="9dp"
            android:thumb="@drawable/circle" android:thumbOffset="2dp"
            android:layout_width="300dp" android:layout_height="wrap_content" />
    </LinearLayout>

</LinearLayout>

and here is childview.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:gravity="center|top" android:paddingBottom="4dp"
    android:background="@drawable/process_bg"
    android:orientation="vertical"
    android:id="@+id/mainchield">


    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="3 of 25"
        android:textColor="#919191" android:textSize="12sp" android:textStyle="bold"
        android:singleLine="true" />


    <SeekBar android:id="@+id/sbVolume" android:padding="4dip"
        android:progressDrawable="@drawable/skbar" android:maxHeight="9dp"
        android:thumb="@drawable/circle" android:thumbOffset="2dp"
        android:layout_width="300dp" android:layout_height="wrap_content" />

        <LinearLayout android:orientation="horizontal"
                android:layout_height="wrap_content" 
                android:layout_width="fill_parent"
                android:layout_gravity="bottom" 
                android:id="@+id/more"
                >

                <ImageButton android:id="@+id/imgprevious" android:src="@drawable/repite"
                    android:background="@android:color/transparent"
                    android:layout_width="wrap_content" android:layout_height="wrap_content"
                    android:layout_marginLeft="30dp" 
                    android:layout_marginTop="5dp"
                    android:layout_marginRight="90dp" />

                <ImageButton android:id="@+id/imgpause"
                    android:background="@android:color/transparent"
                    android:layout_height="wrap_content" android:layout_width="wrap_content"
                    android:layout_marginRight="80dp" 

                    android:src="@drawable/circle_t" />

                <ImageButton android:id="@+id/imgnext" android:src="@drawable/saphal"
                    android:background="@android:color/transparent"
                    android:layout_marginLeft="2dp" android:layout_height="wrap_content"
                    android:layout_width="wrap_content" 
                    android:layout_marginTop="5dp"/>
            </LinearLayout>
</LinearLayout>

下面是childview.xml
我正在将childview.xml的线性布局添加到该事件中。
有谁能告诉我这段代码有什么问题吗?

调试起来有点棘手,但我认为当您执行此操作时:

  mainchield=(LinearLayout)findViewById(R.id.mainchield);
由于id
R.id.mainchield
不在当前contentview(
setContentView(R.layout.main);
)中,您将获得
NULL

您需要从xml中膨胀它,类似这样的东西

 inflatedView = (LinearLayout) View.inflate(this, R.layout.childview, null);
然后就是实际的xml。

查看视图=充气器。充气(R.id.mainchield,extraview,false); extraview.addView(视图)

谢谢