当前位置: 首页 > 知识库问答 >
问题:

在android中链接两个布局

万德海
2023-03-14

我正在尝试将我的两个Android布局连接起来,并完成这个过程

MainActivity.java

public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });



    }

    public void open(View view){
        AlertDialog.Builder alb=new AlertDialog.Builder(this);
        alb.setMessage("Are You Sure Do You Want This");
        alb.setPositiveButton("yes", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
           Toast.makeText(MainActivity.this,"You Clicked Yes Button",Toast.LENGTH_LONG).show();
            }
        });

        alb.setNegativeButton("NO", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this,"You Clicked Yes Button",Toast.LENGTH_LONG).show();
                //finish();
            }
        });
        AlertDialog al=alb.create();
        al.show();
    }


    public void clockwise(View view){
        ImageView iv=(ImageView) findViewById(R.id.imageView);
        Animation animation = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.myanimation);
        iv.startAnimation(animation);
    }
    public void zoom(View view){
ImageView iv=(ImageView) findViewById(R.id.imageView);
        Animation animation=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.clockwise);
        iv.startAnimation(animation);
    }

    public void fade(View view){
        ImageView iv=(ImageView) findViewById(R.id.imageView);
        Animation animation=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fade);
        iv.startAnimation(animation);
    }

    public void blink(View view){
        ImageView iv=(ImageView)findViewById(R.id.imageView);
        Animation animation=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.blink);
        iv.startAnimation(animation);
    }

    public void move(View view){
        ImageView iv=(ImageView)findViewById(R.id.imageView);
        Animation animation=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.move);
        iv.startAnimation(animation);
    }

    public void slide(View view){
        ImageView iv=(ImageView)findViewById(R.id.imageView);
        Animation animation=AnimationUtils.loadAnimation(getApplicationContext(),R.anim.slide);
        iv.startAnimation(animation);
    }






public void next(View v){
   // setContentView(R.layout.recording);
   Intent inent = new Intent(this, RecordActivity.class);

  startActivity(inent);
}

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

记录活动。Java语言

public class RecordActivity extends Activity {
    private MediaRecorder mr;
    Button play,record,stop;
    private String outputFile=null;
    @Override
   public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.recording);

        play=(Button)findViewById(R.id.button3);
        stop=(Button)findViewById(R.id.button2);
        record=(Button)findViewById(R.id.button);
        stop.setEnabled(false);
        play.setEnabled(false);

        outputFile= Environment.getExternalStorageDirectory().getAbsolutePath()+"/recording.3gp";
        mr=new MediaRecorder();
        mr.setAudioSource(MediaRecorder.AudioSource.MIC);
        mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        mr.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
        mr.setOutputFile(outputFile);

    }


    public void Record(View v){
        try{
            mr.prepare();
            mr.start();
        }
        catch (Exception e){
            e.printStackTrace();
        }
        record.setEnabled(false);
        stop.setEnabled(true);


    }


    public void stop(View v){
        mr.stop();
        mr.release();
        mr=null;
        stop.setEnabled(false);
        play.setEnabled(true);
        Toast.makeText(getApplicationContext(),"AudioRecorded Sucessfully",Toast.LENGTH_LONG);

    }

    public void play(View v){
        MediaPlayer mp=new MediaPlayer();
        try{
            mp.setDataSource(outputFile);
            mp.prepare();
        }
        catch (Exception e){
            e.printStackTrace();
        }
        mp.start();
        Toast.makeText(getApplicationContext(),"Playing Audio",Toast.LENGTH_LONG);
    }

}

content_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.example.admin.alertapplication.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Alert Dialog"
        android:id="@+id/textView"
        android:textSize="35dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Raptor"
        android:id="@+id/textView2"
        android:textColor="#da644860"
        android:textSize="35dp"
        android:layout_below="@+id/textView"
        android:layout_centerHorizontal="true" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:src="@drawable/logo"
        android:layout_below="@+id/textView2"
        android:layout_alignLeft="@+id/textView"
        android:layout_alignStart="@+id/textView"
        android:layout_alignRight="@+id/button2"
        android:layout_alignEnd="@+id/button2" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="zoom"
        android:id="@+id/button"
        android:layout_below="@+id/imageView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="40dp"
        android:onClick="clockwise"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="clockwise"
        android:id="@+id/button2"
        android:layout_alignTop="@+id/button"
        android:layout_centerHorizontal="true"
        android:onClick="zoom"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="fade"
        android:id="@+id/button3"
        android:layout_alignTop="@+id/button2"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:onClick="fade"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="blink"
        android:onClick="blink"
        android:id="@+id/button4"
        android:layout_below="@+id/button"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="move"
        android:onClick="move"
        android:id="@+id/button5"
        android:layout_below="@+id/button2"
        android:layout_alignRight="@+id/button2"
        android:layout_alignEnd="@+id/button2"
        android:layout_alignLeft="@+id/button2"
        android:layout_alignStart="@+id/button2" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="slide"
        android:onClick="slide"
        android:id="@+id/button6"
        android:layout_below="@+id/button3"
        android:layout_toRightOf="@+id/textView"
        android:layout_toEndOf="@+id/textView" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Next"
        android:onClick="next"
        android:id="@+id/button61"
        android:layout_below="@+id/button4"
        android:layout_alignRight="@+id/button4"
        android:layout_alignEnd="@+id/button4" />

</RelativeLayout>

recording.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:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:weightSum="1">

    <TextView
        android:layout_width="234dp"
        android:layout_height="112dp"
        android:text="Android Audio Recording"
        android:id="@+id/textView3"
        android:layout_gravity="center_horizontal"

        android:textSize="30dp"
        android:textColor="#d50c0c"
        android:layout_weight="0.01" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="86dp"
        android:id="@+id/imageView2"
        android:src="@drawable/logo"
        android:layout_gravity="center_horizontal"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Record"
        android:id="@+id/button7"
        android:layout_below="@+id/imageView2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="59dp"
        android:onClick="Record"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Stop"
        android:id="@+id/button8"
        android:layout_alignTop="@+id/button"
        android:layout_centerHorizontal="true"
        android:layout_gravity="center_horizontal"
        android:onClick="stop"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="play"
        android:id="@+id/button9"
        android:layout_alignTop="@+id/button8"
        android:layout_alignRight="@+id/textView3"
        android:layout_alignEnd="@+id/textView3"
        android:layout_gravity="right"
        android:onClick="play"
        />

</LinearLayout>

AndroidManifest。xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.admin.alertapplication">
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name=".RecordActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
            </intent-filter>
        </activity>


    </application>

</manifest>

堆栈跟踪04-22 14:24:09.415 4470-4470/andler.java:102E/AndroidRuntime: FATAL EXCEPTION: main Process:android.os., PID: 4470ooper.loopRuntimeException:无法启动活动ComponentInfo{ooper.java:135}:android.app.NullPointerException:尝试调用虚方法'空hread.mainBhread.java:5254启用(boolean)'在java.lang.reflect.ActivityT启动活动(ActivityTjava.lang.reflect.)在ethod.invokeActivityT启动活动(ActivityTcom.android.internal.os.)在android.app.ActivityThread.access800美元(ActivityThread.java:151)在android.app.ActivityThread$H. handleMessage(ActivityThread.java:1303)在android.os.Handler.dispatch消息(Hcom.example.admin.alertapplication)在com.example.admin.alertapplicationLjava.lang.(Lcom.example.admin.alertapplication/com.example.admin.alertapplication.RecordActivity)在java.lang.ActivityTandroid.widget.(ActivityTutton.set)在android.app.Mhread.perform(本机方法)在hread.java:2325Mandroid.app.(Mhread.handle)在hread.java:2387ZygoteInit$MEodAndArgsCaller. run(ZygoteInit. java: 903)在在com. example. admin. alertApplication的空对象引用上的Button. setEnable(boolean)'。在android. app. Activity. performCreate(Activity. java: 27)在android. app. Instrumentation. call ActivityOnCreate(Instrumentation. java: 1106)在android. app. ActivityThread. performLaunchActive(ActivityThread. java: 2278)在android. app. ActivityThread. handleLaunchActive(ActivityThread. java: 2387)

我正在使用上面的代码来链接两个布局,当单击next按钮时,next()函数将在应用程序停止后调用。为什么会发生这种情况?有人能帮我解决这个问题吗

共有1个答案

鲁德佑
2023-03-14

原因在于这一行中的记录活动(RecordActivity)
播放=(Button)findViewById(R.id.button3) =

 类似资料:
  • 问题内容: 我有两个完成。我想做以下情形:如果第一个Completable到达onComplete,则继续第二个Completable。最终结果将是第二完成的onComplete。 当我有单个 getUserIdAlreadySavedInDevice() 和Completable login() 时,这就是我的方法: 问题答案: 您正在寻找运营商。 返回一个Completable,它首先运行此C

  • 这是我的一个货车租赁数据库的起始代码。 如何将汽车链接到该位置。例如,CBD的位置有Wicked,Zepplin和Floyd,Penrith有Queen。因此,如果命令行参数具有“打印CBD”,那么它必须显示CBD中可用的货车。 任何帮助将不胜感激。

  • 我们已经为网站的布局定义了看起来不错的样式,下面要把链接中使用的占位符 # 换成真正的链接地址。当然,我们可以像下面这样硬编码链接: <a href="/static_pages/about">About</a> 不过这样不太符合 Rails 之道。一者,“关于”页面的地址如果是 /about 而不是 /static_pages/about 就好了;再者,Rails 习惯使用具名路由指定链接地址

  • 我有两个完整的。我想做以下场景:如果第一个Completable到达onComplete,继续第二个Completable。最终结果将是完成第二个可完成项。 这就是我在使用单getUserIdAlreadySavedInDevice()和Compltable login()时的做法:

  • 如何配置allure jenkins插件的发布链接? 全局jenkins设置中只有“默认结果目录”和“默认报告版本”设置。 测试后allure报告正常生成,但发布链接断开。

  • 问题内容: 我有几个Docker容器,还有一个特例,其中两个必须互相交谈,因此它们必须通过链接最多彼此了解。我可以将一个容器链接到另一个容器,但是问题是,我不能告诉他们第二个容器可以与第一个容器对话。 我尝试创建并运行第一个容器并将其停止,然后创建了第二个容器并同时将其停止。接下来,我再次启动了第一个容器并链接到第二个容器,并启动了第二个容器并链接到第一个容器。此后,我的机器发疯了,docker进