В моей программе у меня есть список, подобный этой картинке
, поэтому вы можете видеть, что в каждом списке есть 2 строки и 1 кнопка, поэтому я вызываю каждую кнопку из каждого списка, как этот
public void buttonGetClicked(View v){
db.open();
LinearLayout linearLayout = (LinearLayout)v.getParent();
TextView idRow = (TextView) linearLayout.getChildAt(4);
Toast.makeText(Im_SensShow.this, idRow.getText(), Toast.LENGTH_SHORT).show();
и в результате, если я нажимаю кнопку в первом списке, она отображает «1», а если я нажимаю кнопку в списке два, она отображает «2»
, но то, что янужно получить текст из базы данных для чтения в функции TTS
(например, в на этом рисунке : если нажать кнопку в первом списке, TTS издаст звук "У вас есть комната" иесли я нажму кнопку во втором списке, TTS издаст звук "Do you")
, и я уже закодировал базу данных вот так
public Cursor getSound(String rowId) {
return db.query(IM_SENS_TABLE, new String[] {
KEY_IM_SENS_ID,
KEY_IM_SENS},
KEY_IM_SENS_ID + "="+ rowId,
null, null, null, null, null);
}
Я пытаюсь написать вот так
public void buttonGetClicked(View v){
db.open();
LinearLayout linearLayout = (LinearLayout)v.getParent();
TextView idRow = (TextView) linearLayout.getChildAt(4);
Cursor cc = cursor;
cc = db.getSound(idRow.getText().toString());
startManagingCursor(cc);
String sp=cc.getString(cc.getColumnIndexOrThrow(DBAdapter.KEY_IM_SENS));
onInit(sp);
}
public void onInit(String speech) {
tts.setLanguage(Locale.ENGLISH);
tts.speak(speech, TextToSpeech.QUEUE_FLUSH, null);
}
но оно принудительно закрывается
помогите пожалуйста