Я довольно новичок в android, поэтому, пожалуйста, простите мое невежество или некомпетентность.Цикл через массив с помощью кнопок
Я создаю приложение высказываний (цитат), которые хранятся в массиве и отображаются через TextView с использованием .setText.
В настоящее время я работаю над выбором и отображением случайных высказываний и воспроизведением соответствующего звука. Теперь я хочу использовать кнопку «Далее» и «Назад», чтобы перебирать массив высказываний, но изо всех сил пыталась это сделать какое-то время.
Я бы предположил, что мне нужно найти значение индекса отображаемого в данный момент высказывания и увеличить или уменьшить его на единицу?
Любая помощь будет отличной. Благодарю.
Это то, что я до сих пор:
public class Sayings extends Activity implements OnClickListener {
HashMap<String, Integer> sayingsResIds = new HashMap<String, Integer>();
MediaPlayer mp;
String[] sayings = {"Saying1", "Saying2", "Saying3", "Saying4", "Saying5"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sayings);
Animation anim;
anim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_in);
TextView sayingsTextView = (TextView) findViewById(R.id.displaySayings);
sayingsTextView.startAnimation(anim);
Button btnRandom = (Button) findViewById(R.id.random_button);
Button btnNext = (Button) findViewById(R.id.next_button);
Button btnBack = (Button) findViewById(R.id.back_button);
btnRandom.setOnClickListener(this);
btnNext.setOnClickListener(this);
btnBack.setOnClickListener(this);
sayingsResIds.put("Saying1",R.raw.saying1);
sayingsResIds.put("Saying2",R.raw.saying2);
sayingsResIds.put("Saying3",R.raw.saying3);
sayingsResIds.put("Saying4",R.raw.saying4);
sayingsResIds.put("Saying5",R.raw.saying5);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.sayings, menu);
return true;
}
@Override
public void onClick(View v) {
Animation anim;
TextView sayingsTextView = (TextView) findViewById(R.id.displaySayings);
anim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_in2);
int resId = 0;
switch (v.getId()) {
case R.id.random_button:
String randomSaying = (sayings[new Random().nextInt(sayings.length)]);
sayingsTextView.setText('"' + randomSaying + '"');
resId = sayingsResIds.get(randomSaying);
sayingsTextView.startAnimation(anim);
break;
case R.id.next_button:
// Click Next to find next saying in the array
break;
case R.id.back_button:
// Click Back to find the previous saying in the array
break;
}
if (mp != null) {
mp.release();
}
mp = MediaPlayer.create(this, resId);
mp.start();
}
Создайте переменную INT класс под названием что-то вроде 'currentPosition' и запустить его в 0. Если они попали в следующем, то приращение (++) его и показать этот пункт на этой позиции в массиве. Если они ударят, то уменьшите (-) и покажите элемент в этой позиции в массиве. Просто проверьте, находитесь ли вы в начале или конце индекса. – csmckelvey
Эй, спасибо за ответ. Я понимаю псевдо, потому что я просто не уверен точно, как реализовать его в коде. –
Сделайте снимок и задайте вопросы о том, что вы придумали. Ответ ниже - это в точности то же самое, что я сказал, и он ложка кормит вас всем. – csmckelvey