2012-06-04 2 views
0

Я пошел в main.xml к графическому макету и перетащил на конструктор ExpandableList. Я могу видеть это также в коде main.xml выполнения:Как добавить строку типа arrayList в ListView в Eclipse Android?

<ExpandableListView 
     android:id="@+id/expandableListView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </ExpandableListView> 

Но когда им бежать мое приложение я не вижу его в устройстве Android. Что я хочу сделать, так это добавить строку arrayList в этот ListView, чтобы я мог выбирать из этого списка на своем устройстве.

package com.testotspeech; 

import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.Locale; 

import android.app.Activity; 
import android.os.Bundle; 
import android.speech.tts.TextToSpeech; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ListView; 

public class AndroidTestToSpeechActivity extends Activity implements 
     TextToSpeech.OnInitListener { 
    /** Called when the activity is first created. */ 

    private TextToSpeech tts; 
    private Button btnSpeak; 
    private EditText txtText; 
    private ListView lview; 
    private ArrayList<String> itemsList; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     itemsList = new ArrayList<String>(); 
     Log.i("----------",Arrays.toString(Locale.getAvailableLocales())); 
     itemsList.add(Arrays.toString(Locale.getAvailableLocales())); 
     tts = new TextToSpeech(this, this); 
     btnSpeak = (Button) findViewById(R.id.btnSpeak); 
     lview = (ListView) findViewById(R.id.expandableListView1); 
     txtText = (EditText) findViewById(R.id.txtText); 

     // button on click event 
     btnSpeak.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View arg0) { 
       speakOut(); 
      } 

     }); 
    } 

    @Override 
    public void onDestroy() { 
     // Don't forget to shutdown tts! 
     if (tts != null) { 
      tts.stop(); 
      tts.shutdown(); 
     } 
     super.onDestroy(); 
    } 

    public void onInit(int status) { 

     if (status == TextToSpeech.SUCCESS) { 

      int result = tts.setLanguage(Locale.ENGLISH); 

      if (result == TextToSpeech.LANG_MISSING_DATA 
        || result == TextToSpeech.LANG_NOT_SUPPORTED) { 
       Log.e("TTS", "This Language is not supported"); 
      } else { 
       btnSpeak.setEnabled(true); 
       speakOut(); 

      } 

     } else { 
      Log.e("TTS", "Initilization Failed!"); 
     } 

    } 

    private void speakOut() { 

     String text = txtText.getText().toString(); 
     tts.speak(text, TextToSpeech.QUEUE_FLUSH, null); 
    } 
} 

У меня есть Log.i, а затем под ним Ihave itemsList Wich является ArrayList Im получить список доступных языков в моем устройстве. Я хочу добавить этот список в ListView, поэтому я могу выбрать там язык на своем устройстве, и он изменит язык в реальном времени.

Проблема в том, что я не вижу ListView вообще при запуске приложения на своем устройстве, а вторая проблема заключается в том, как добавить список в ListView?

Спасибо.

+0

Это очень простой вопрос. Вы можете найти много учебников об этом. –

ответ

1

Вы можете использовать «адаптеры» для того, что может быть ArrayAdapte/BaseAdapter/CursorAdapter ,,, простой пример использования адаптера массива может быть

public class YourActivity extends Activity 
{ 
    private ListView lv; 
    public void onCreate(Bundle saveInstanceState) { 
     lv = (ListView) findViewById(R.id.your_list_view_id); 
     // Instanciating an array list (you don't need to do this, you already have yours) 
     ArrayList<String> your_array_list = new ArrayList<String>(); 
     your_array_list.add("foo"); 
     your_array_list.add("bar"); 
     // This is the array adapter, it takes the context of the activity as a first // parameter, the type of list view as a second parameter and your array as a third parameter 
     ArrayAdapter<String> arrayAdapter =  
     new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, your_array_list); 
     lv.setAdapter(arrayAdapter); 
     setContentView(R.layout.your_layout); 

    } 
} 
Смежные вопросы