2012-02-28 4 views
0

Я работаю над созданием словаря, и я пытаюсь создать ListMenu динамически, поскольку он создается автоматически при фильтрации слов из базы данных по алфавиту. Я создал ListMenu вручную, но не могу превратить его в динамический. Кто-нибудь есть идея, как создать ListMenu динамически?Как создать ListMenu динамически?

Вот мой код:

package ge.gtug; 

import android.app.ListActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class Settings extends ListActivity{ 


String listItems[] = {"AboutUs", "AboutApp", "Feedback"}; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setListAdapter(new ArrayAdapter<String>(Settings.this, android.R.layout.simple_list_item_1, listItems)); 
} 

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 
    String koba = listItems[position]; 
    super.onListItemClick(l, v, position, id); 
    try{ 
    Class myClass1 = Class.forName("ge.gtug." + koba); 
    Intent myIntent1 = new Intent(Settings.this, myClass1); 
    startActivity(myIntent1); 
    }catch(ClassNotFoundException e){ 
     e.printStackTrace(); 

    try { 
    Class myClass2 = Class.forName("ge.gtug." + koba); 
    Intent myIntent2 = new Intent(Settings.this, myClass2); 
    startActivity(myIntent2); 
    }catch(ClassNotFoundException o){ 
     o.printStackTrace(); 
      } 
    } 
} 

} 

ответ

0

Вместо того, чтобы использовать массив для хранения данных с помощью списка (ArrayList, вектор, или аналогичный). И всякий раз, когда вы изменяете сбор данных вам необходимо сообщить ArrayAdapter, что данные изменились - для уведомления адаптера массива, список изменился вызов метода

ArrayList<String> listItems = new ArrayList<String>(); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(Settings.this, android.R.layout.simple_list_item_1, listItems); 
setListAdapter(adapter); 

listItems.add("new string"); 
adapter.notifyDataSetChanged(); 

http://developer.android.com/reference/android/widget/ArrayAdapter.html#notifyDataSetChanged%28%29

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