1

我创建了两个类。我想在 1 类(MainActivity)上有一个按钮,当它被按下时,它将带我到 2 类(字母)。我尝试了很多方法,但都没有成功。下面是我的原始代码。谁能帮我?对不起,我是应用程序开发的新手。

package com.example.lullabymain;


import android.os.Bundle;  
import android.app.Activity;
import android.view.Menu;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.view.View;
import android.view.View.OnClickListener;




public class MainActivity extends Activity implements OnClickListener {

private MediaPlayer mp;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // new code

        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        findViewById(R.id.button1).setOnClickListener(this);
        findViewById(R.id.button2).setOnClickListener(this);
        findViewById(R.id.button3).setOnClickListener(this);
        findViewById(R.id.button4).setOnClickListener(this);
        findViewById(R.id.button5).setOnClickListener(this);
    }


    public void onClick(View v) {
        int resId = 0;
        switch (v.getId()) {
        case R.id.button1: resId = R.raw.rockabye; break;
        case R.id.button2: resId = R.raw.hushlittlebaby; break;
        case R.id.button3: resId = R.raw.twinkle; break;
        case R.id.button4: resId = R.raw.hickory; break;
        case R.id.button5: resId = R.raw.oldmcd; break;


        }
        //release any resources from previous mediaplayer
        if (mp != null) {
            mp.release();
        }
        //create a new mediaplayer to play this sound
        mp = MediaPlayer.create(this, resId);
        mp.start();

    }


    @Override
    protected void  onStop()
    {
        //stop audio
        super.onStop();
        mp.stop();
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

下面的代码是我尝试的代码,其中包括“意图”

package com.example.lullabymain;

import android.os.Bundle; 

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.media.AudioManager;

import android.media.MediaPlayer;

import android.view.View;

import android.view.View.OnClickListener;

public class MainActivity extends Activity implements OnClickListener {
    private MediaPlayer mp;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // new code
        **View button6 = findViewById(R.id.button6);
        button6.setOnClickListener(this);**       
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        findViewById(R.id.button1).setOnClickListener(this);
        findViewById(R.id.button2).setOnClickListener(this);
        findViewById(R.id.button3).setOnClickListener(this);
        findViewById(R.id.button4).setOnClickListener(this);
        findViewById(R.id.button5).setOnClickListener(this);
    }


    public void onClick(View v) {
        int resId = 0;
        switch (v.getId()) {
        case R.id.button1: resId = R.raw.rockabye; break;
        case R.id.button2: resId = R.raw.hushlittlebaby; break;
        case R.id.button3: resId = R.raw.twinkle; break;
        case R.id.button4: resId = R.raw.hickory; break;
        case R.id.button5: resId = R.raw.oldmcd; break;
        **case R.id.button6:
            Intent i = new Intent(this, Alphabet.class);
            startActivity(i);
            break;**

        }
        //release any resources from previous mediaplayer
        if (mp != null) {
            mp.release();
        }
        //create a new mediaplayer to play this sound
        mp = MediaPlayer.create(this, resId);
        mp.start();

    }


    @Override
    protected void  onStop()
    {
        //stop audio
        super.onStop();
        mp.stop();
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
4

5 回答 5

2

如果你想做自定义编码,你需要学习 Objective-C 或 Swift 等语言来开发 iOS 应用程序。或者另一种方式是移动应用程序开发平台。借助应用程序开发工具,您可以使用拖放功能开发应用程序,而无需编写任何代码。

我是一名 iOS 应用程序开发人员,我尝试过大多数移动应用程序开发平台。到今天为止,我在 Phonegap、Telerik、Configure.IT 等的帮助下开发了 50 多个应用程序。它们在应用程序商店中成功运行。

根据我在该领域的经验,我建议开发人员和初学者使用像http://www.configure.it/这样的移动应用程序开发平台,因为它提供了自动编码、应用程序预览设施、直接 API 连接等等特征。这些东西节省了更多的开发时间,并在更短的时间内提供了快速且设计良好的应用程序。

这个工具的主要好处是,它是基于 Web 的平台,因此您不需要购买 Mac 系统,您可以从任何地方以及任何系统制作应用程序。

于 2016-08-30T11:10:36.703 回答
1

目前在 MainActivity Activity 中,您没有将 setOnClickListener 添加到 button6 ,但在 onClick 方法中,您试图在 button6 click 上启动 Activity 。让你的代码工作添加setOnClickListener到 button6 也作为

public class MainActivity extends Activity implements OnClickListener {
private MediaPlayer mp;
Button button6 ;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // new code
    button6 = (Button)findViewById(R.id.button6);
    button6.setOnClickListener(this);      

并将清单中的字母活动注册为:

<activity android:name=".Alphabet" />
于 2012-12-05T16:24:57.520 回答
0

当您设置 {this} 的上下文时,您正在使用 onClickListener 的 {this}。使用 getApplicationContext();

Button button6 = (Button)findViewById(R.id.button6);
button6.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v){
        startActivity(new Intent(getApplicationContext(), Alphabet.class));
    }
});

您的代码抛出了哪些错误?

于 2012-12-05T16:26:25.477 回答
0
package com.example.lullabymain;

import android.os.Bundle; 

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.media.AudioManager;

import android.media.MediaPlayer;

import android.view.View;

import android.view.View.OnClickListener;

public class MainActivity extends Activity implements OnClickListener {
private MediaPlayer mp;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // new code
    Button button6 = (Button)findViewById(R.id.button6);
    button6.setOnClickListener(this);      
    setVolumeControlStream(AudioManager.STREAM_MUSIC);
    findViewById(R.id.button1).setOnClickListener(this);
    findViewById(R.id.button2).setOnClickListener(this);
    findViewById(R.id.button3).setOnClickListener(this);
    findViewById(R.id.button4).setOnClickListener(this);
    findViewById(R.id.button5).setOnClickListener(this);
}


public void onClick(View v) {
    int resId = 0;
    switch (v.getId()) {
    case R.id.button1: resId = R.raw.rockabye; break;
    case R.id.button2: resId = R.raw.hushlittlebaby; break;
    case R.id.button3: resId = R.raw.twinkle; break;
    case R.id.button4: resId = R.raw.hickory; break;
    case R.id.button5: resId = R.raw.oldmcd; break;
    case R.id.button6:
        Intent i = new Intent(getApplicationContext(), com.example.lullabymain.Alphabet.class);
        startActivity(i);
        break;

    }
    //release any resources from previous mediaplayer
    if (mp != null) {
        mp.release();
    }
    //create a new mediaplayer to play this sound
    mp = MediaPlayer.create(this, resId);
    mp.start();

}


@Override
protected void  onStop()
{
    //stop audio
    super.onStop();
    mp.stop();
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}

于 2012-12-05T16:42:38.967 回答
0

您需要做的是在所需按钮上设置点击侦听器,然后是 Intents 以转到您的新类,例如 Intent i5 = new Intent(this, HadithList.class); 开始活动(i5);

于 2012-12-10T03:02:41.420 回答