1

私は2つのクラスを作成しました。クラス 1 (MainActivity) にボタンを配置して、ボタンを押すとクラス 2 (Alphabet) に移動するようにしたいと考えています。私はそれを行うために多くの方法を試しましたが、うまくいきませんでした。これが私の元のコードです。誰でも私を助けることができますか?申し訳ありませんが、アプリ開発は初めてです。

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 アプリを開発する必要があります。または別の方法は、モバイル アプリ開発プラットフォームです。アプリ開発ツールを使用すると、コードを 1 行も書かずにドラッグ & ドロップ機能を備えたアプリを開発できます。

私は iOS アプリの開発者で、ほとんどのモバイル アプリ開発プラットフォームを試してきました。Phonegap、Telerik、Configure.IT などの助けを借りて、今日まで 50 以上のアプリを開発してきました。それらはアプリ ストアで正常に実行されています。

この分野での私の経験によると、自動コーディング、アプリのプレビュー機能、ダイレクト API 接続などを提供するため、開発者だけでなく初心者にもhttp://www.configure.it/のようなモバイル アプリ開発プラットフォームを使用することをお勧めします。特徴。これらのことにより、開発時間を大幅に節約し、高速で適切に設計されたアプリをはるかに短い時間で提供できます。

このツールの主な利点は、Web ベースのプラットフォームであるため、Mac システムを購入する必要がなく、どのシステムからでもどこからでもアプリを作成できることです。

于 2016-08-30T11:10:36.703 に答える
1

現在 MainActivity アクティビティでは setOnClickListener を button6 に追加していませんが、 onClick メソッドでは button6 click でアクティビティを開始しようとしています。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);      

マニフェストに Alphabet Activity を次のように登録します。

<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

あなたがする必要があるのは、必要なボタンのクリックリスナーに設定し、その後に新しいクラスに移動するためのインテントが続きます。たとえば、Intent i5 = new Intent(this, HadithList.class); startActivity(i5);

于 2012-12-10T03:02:41.420 に答える