我还是Android新手。我有一本儿童书,我已经完成了两个按钮“READ TO ME”和“READ TO MYSELF”。
读给我看onclick将播放录音,因为它会读到书,但它会转到SoundOne Activity。 自我阅读将显示文本,并导致PageOne活动。
如何创建某种“if语句”,以便当我点击向我看时,它将播放录音,但会导致PageOne Activity。当我点击自己阅读时它会显示文字,但仍然会导致PageOne Activity
这可能有助于减少到目前为止已创建的类的数量,并避免ANR假设。一些源代码或教程将有助于提前感谢我的代码如下:
package com.inerds.donkiejoukie;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.content.Context;
public class Fbone extends MainActivity {
MediaPlayer one;
MediaPlayer mb;
MediaPlayer mp;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.fbone);
one = MediaPlayer.create(this, R.raw.pageone);
mb = MediaPlayer.create(this, R.raw.menubar);
mp = MediaPlayer.create(this, R.raw.pageflip);
ImageButton imageButton1 = (ImageButton) findViewById(R.id.imageButton1);
imageButton1.setOnClickListener (new OnClickListener() {
public void onClick(View vone) {
mb.pause();
mb.stop();
mp.start();
startActivity(new Intent(getApplicationContext(), PageOne.class));
finish();
}
});
ImageButton readtome = (ImageButton) findViewById(R.id.readtome);
readtome.setOnClickListener (new OnClickListener() {
public void onClick(View v) {
mb.pause();
mb.stop();
one.start();
startActivity(new Intent(getApplicationContext(), SoundOne.class));
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 100, 0);
finish();
}
});
}
}
答案 0 :(得分:0)
Intent
机制用于从一个Activity
进行通信。在Intent
以及要启动的类中,您可以指定要执行的操作的名称以及其他选项。在这种情况下,您可能希望使用 extra 告诉以下类是否播放声音。当你开始意图时:
Intent nextActivity = new Intent(getApplicationContext(), SoundOne.class);
// Put true or false in the next line according to which click handler you're in.
nextActivity.putBooleanExtra(SoundOne.extra_enableSound, true);
startActivity(nextActivity);
然后在您的SoundOne
活动中,您需要一个额外名称的常量字段:
static final String extra_enableSound = "enableSound";
你可以从onCreate
或者想要开始声音的任何地方找到这个额外的值:
if (getIntent().getBooleanExtra(extra_enableSound, false)) {
// start the sound
}
现在您的PageOne
活动未使用,可以删除。 documentation for Intent
会告诉您可以存储的其他信息。
答案 1 :(得分:-1)
我不是专业的程序员,所以这可能不是最好的方法,但是对于我来说,只需要很少的代码就可以。
这就是我正在做的事情。
设置" onClick"对于我的XML中的按钮
<Button
android:id="@+id/button2"
android:layout_width="144dp"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/button1"
android:onClick="sendMessage1"
android:text="@string/cancel"
/>
在我设置按钮的活动中
Button button1;
Button button2;
然后使用sendmessage而不是onButtonclick
public void sendMessage(View view)
{
Intent intent = new Intent(this, ThirdActivity.class);
startActivity(intent);
}
public void sendMessage1(View view)
{
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
答案 2 :(得分:-2)
package com.inerds.donkiejoukie;
public class Fbone extends MainActivity {
MediaPlayer one;
MediaPlayer mb;
MediaPlayer mp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fbone);
one = MediaPlayer.create(this, R.raw.pageone);
mb = MediaPlayer.create(this, R.raw.menubar);
mp = MediaPlayer.create(this, R.raw.pageflip);
ImageButton imageButton1 = (ImageButton) findViewById(R.id.imageButton1);
ImageButton readtome = (ImageButton) findViewById(R.id.readtome);
imageButton1.setOnClickListener (handleOnClickListener);
readtome.setOnClickListener (handleOnClickListener);
}
private OnClickListener handleOnClickListener = new OnClickListener() {
public void onClick(View v) {
switch(v.getId()){
case R.id.imageButton1:
mb.pause();
mb.stop();
mp.start();
startActivity(new Intent(getApplicationContext(), PageOne.class));
finish();
break;
case R.id.readtome:
mb.pause();
mb.stop();
one.start();
startActivity(new Intent(getApplicationContext(), SoundOne.class));
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 100, 0);
finish();
break;
}
}
};
}