во время oncreate () Вызов, у меня есть текст, измененный слушатель, прикрепленный к управлению EditText с именем Sugar , чтобы при изменении текста внутри этого элемента управления он вызывает функцию OnTextChanged () .
Внутри функции OnTextChanged () у меня есть 4 разных сценария (где сахар в крови человека может быть низким и падающим, низким и поднимающимся, высоким и падающим, или высоким, а также поднятие). В зависимости от того, какое число (от 1 до 4) находится внутри коробки Sugar , моя цель состоит в том, чтобы передать строку функции, называемой m4aplayer.play () в m4aplayer.java, определяя, какой звук воспроизводить (в зависимости от того Номер от 1 до 4 вводится в Box Sugar . Мое приложение теперь сбои с ошибкой < /p>
не может соответствовать нужному поведению свопа < /p>
< /blockquote>
Что это может означать? Вот мой код MainActivity.java: < /p>
Код: Выделить всё
package com.UnitedToolsForSouls.SoundAlert;
import android.app.*;
import android.os.*;
import java.util.*;
import android.widget.*;
import android.text.*;
import android.content.*;
public class MainActivity extends Activity {
private static EditText sugar;
private static TextView result;
private static TextView scenario1;
private static TextView scenario2;
private static TextView scenario3;
private static TextView scenario4;
public Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
context = this;
sugar = (EditText) findViewById(R.id.sugar);
result = (TextView) findViewById(R.id.result);
scenario1 = (EditText) findViewById(R.id.scenario1);
scenario2 = (EditText) findViewById(R.id.scenario2);
scenario3 = (EditText) findViewById(R.id.scenario3);
scenario4 = (EditText) findViewById(R.id.scenario4);
sugar.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Called as text is being changed
String sug = sugar.getText().toString();
String s1 = scenario1.getText().toString();
String s2 = scenario2.getText().toString();
String s3 = scenario3.getText().toString();
String s4 = scenario4.getText().toString();
result.setText("???");
if (sug.length() == 1) {
if (sug.charAt(0) == '1') {
result.setText(s1);
}
if (sug.charAt(0) == '2') {
result.setText(s2);
}
if (sug.charAt(0) == '3') {
result.setText(s3);
}
if (sug.charAt(0) == '4') {
result.setText(s4);
}
M4APlayer.play(context, result.getText().toString());
}
}
@Override
public void beforeTextChanged(CharSequence p1, int p2, int p3, int p4) {
// TODO: Implement this method
}
@Override
public void afterTextChanged(Editable p1) {
// TODO: Implement this method
}
});
}
}
Код: Выделить всё
package com.UnitedToolsForSouls.SoundAlert;
import android.content.Context;
import android.media.MediaPlayer;
public class M4APlayer {
public static void play(Context context, String file) {
/*PROBLEM*/
MediaPlayer mp = MediaPlayer.create(context, R.id.scenario1);
//mp.start();
//Stop the fplayer.
//Loop and play the file when nothing is playing.
}
}
Кроме того, почему MediaPlayer.create() принимает в качестве второго аргумента целочисленный аргумент?
p>
Я пытался закомментировать код в M4APlayer.play(), пока мое приложение не перестало давать сбой, и обнаружил, что это сделал MediaPlayer.create(). Конкретного ответа на этот сценарий пока нет. В одном ответе предлагалось очистить кеш и перезагрузить телефон, но комментарий, что одна строка помогла.
Подробнее здесь: https://stackoverflow.com/questions/793 ... the-androi
Мобильная версия