应用开发新手。创建一个将一个类链接到另一个类的按钮?

时间:2012-12-05 16:21:15

标签: android helper helpers

我创建了两个类。我希望在1级(MainActivity)上有一个按钮,当按下它时,它将带我到2级(字母表)。我尝试了很多方法,但我没有成功。这是我的原始代码如下。谁能帮我? 对不起,我是app app的新手。

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;
    }
}

以下代码是我尝试的代码,其中包含“Intent”

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;
    }
}

5 个答案:

答案 0 :(得分:2)

如果您想进行自定义编码,您需要学习Objective-C或Swift等语言来开发iOS应用程序。或者另一种方式是移动应用开发平台。借助应用程序开发工具,您可以使用拖动和开发工具开发应用程序。删除设施而不写一行代码。

我是iOS应用开发者,我尝试过大多数移动应用开发平台。到目前为止,我已经在Phonegap,Telerik,Configure.IT等的帮助下开发了50多个应用程序。它们在应用商店中成功运行。

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

此工具的主要优点是,它是基于网络的平台,因此您无需购买Mac系统,您可以从任何地方以及任何系统制作应用程序。

答案 1 :(得分:1)

目前在MainActivity Activity中,您没有将setOnClickListener添加到button6,但在onClick方法中,您尝试在button6上单击启动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);      

并在Manifest中注册Alphabet Activity:

<activity android:name=".Alphabet" />

答案 2 :(得分: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));
    }
});

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

答案 3 :(得分: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;
}

}

答案 4 :(得分:0)

您需要做的是在所需按钮上单击侦听器 然后是Intents去你的新班级         Intent i5 = new Intent(this,HadithList.class);             startActivity(I5);