2015-01-18 1 views
1

Я видел несколько примеров, которые заполняли ListViews в ListActivity. Я хочу как динамически заполненный ListView, так и в действии с панелью действий.Могу ли я динамически заполнять ListView в ActionBarActivity?

Так вместо того, чтобы (как в примерах, которые я видел):

public class EditHolidaysActivity extends ListActivity { 

У меня есть:

public class EditHolidaysActivity extends ActionBarActivity { 

Но метод setListAdapter не может быть решена. Какой метод я могу использовать для заполнения ListView? Вот фрагменты XML, и Java:

... 
    <CheckBox 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/Anni" 
     android:id="@+id/chkbxAnniversary" 
     android:checked="false" 
     android:onClick="saveAnniPref"/> 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" /> 

</LinearLayout> 

Java:

public class EditHolidaysActivity extends ActionBarActivity { 
    public static final String PREFS_NAME = MainActivity.PREFS_NAME; 
    private final static String TEXT_DATA_KEY = "textData"; 
    private CommentsDataSource datasource; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_edit_holidays); 

     datasource = new CommentsDataSource(this); 
     datasource.open(); 

     List<Comment> values = datasource.getAllComments(); 

     // use the SimpleCursorAdapter to show the 
     // elements in a ListView 
     ArrayAdapter<Comment> adapter = new ArrayAdapter<Comment>(this, 
       android.R.layout.simple_list_item_1, values); 
     setListAdapter(adapter); 
    } 

Спасибо!

+1

Почему бы не создать экземпляр 'ListView myListView' использовать' MyListView = (ListView) findByViewId (R.id.lstName) ', а затем вызвать' myListView.setAdapter (адаптер) '? – Leigh

+0

Давая ему попробовать ... –

+0

Коррекция; используйте 'myListView = (ListView) findViewById (R.id.lstName)' - см. мой ответ ниже. – Leigh

ответ

2

Что-то вроде этого:

public class EditHolidaysActivity extends ActionBarActivity { 
public static final String PREFS_NAME = MainActivity.PREFS_NAME; 
private final static String TEXT_DATA_KEY = "textData"; 
private CommentsDataSource datasource; 
private ListView lstView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_edit_holidays); 

    lstView = (ListView)findViewById(R.id.list); 

    datasource = new CommentsDataSource(this); 
    datasource.open(); 

    List<Comment> values = datasource.getAllComments(); 

    // use the SimpleCursorAdapter to show the 
    // elements in a ListView 
    ArrayAdapter<Comment> adapter = new ArrayAdapter<Comment>(this, 
      android.R.layout.simple_list_item_1, values); 
    lstView.setAdapter(adapter); 
} 
+0

Спасибо, кажется, работает. –