Добавление панели действий в список
Здравствуйте, поэтому я создал список, и я хочу добавить панель действий. Я совершенно новый для android, поэтому я хотел бы знать, как добавить панель действий при использовании ListActivity. Любая помощь будет оценена. благодаря
Мой код:
public class MainActivity extends ListActivity {
ArrayList<Item> items = new ArrayList<Item>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
items.add(new SectionItem("2x2 Matrices"));
items.add(new EntryItem("Adding 2 Matrices"));
items.add(new EntryItem("Subtracting 2 Matrices"));
items.add(new EntryItem("Multiplying 2 Matrices"));
items.add(new EntryItem("Multiplying by a constant"));
items.add(new EntryItem("Dividing 2 Matrices"));
items.add(new EntryItem("Negative of a Matrix"));
items.add(new EntryItem("Inverse of a Matrix"));
items.add(new EntryItem("Determinant of a Matrix"));
/*Section2*/
items.add(new SectionItem("3x3 Matrices"));
items.add(new EntryItem("Item 4"));
items.add(new EntryItem("Item 5"));
items.add(new EntryItem("Item 6"));
items.add(new EntryItem("Item 7"));
/*Section3*/
items.add(new SectionItem("Category 3"));
items.add(new EntryItem("Item 8"));
items.add(new EntryItem("Item 9"));
items.add(new EntryItem("Item 10"));
items.add(new EntryItem("Item 11"));
items.add(new EntryItem("Item 12"));
EntryAdapter adapter = new EntryAdapter(this, items);
setListAdapter(adapter);
}
}
Ответы
Ответ 1
Затем в вашем действии метод onCreateOptionsMenu() раздуйте ресурс меню в данное меню, чтобы добавить каждый элемент в панель действий:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
Подробнее о панели действий
Ответ 2
Сначала - Убедитесь, что ваш Android минимум API-14 or later
.
Затем добавьте android:theme="@android:style/Theme.Holo.Light.DarkActionBar"
в свой класс ListView_Activity
в AndroidManifest.xml
.
Пример
<activity android:name=".Your_ListView_Activity"
android:theme="@android:style/Theme.Holo.Light.DarkActionBar"
android:label="ListView_Activity_Label">
Ответ 3
Вы можете использовать Holo Themes, вам нужно только на этом экране?
В манифесте Android:
Только для одного экрана поместите тему атрибута, например:
<activity
android:theme="@android:style/Theme.Holo.Light.DarkActionBar">
</activity>
Для всего экрана поместите тему атрибута в тег приложения.
<application
android:theme="@style/My_Theme" >
Также вы можете создать пользовательскую тему на основе темы Holo Light.
Пример:
android:theme="@style/My_Theme" >
В styles.xml
<style name="My_Theme" parent="@android:style/Theme.Holo.Light.NoActionBar"></style>
Ответ 4
Вот хороший способ:
В вашем файле макета: activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/list"
android:layout_height="wrap_content"
android:layout_width="match_parent">
</ListView>
Теперь для вашей деятельности:
public class MainActivity extends ActionBarActivity
{
private ListView listView;
private ListAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.list);
myAdapter = new ListAdapter(getApplicationContext());
listView.setAdapter(myAdapter);
Удачи!
Ответ 5
ListActivity не был перенесен в AppCompat. Вероятно, потому что вы должны считать это "deprecated
", а вместо этого используйте ListFragment.
Фрагменты будут работать с ActionBarActivity, просто убедитесь, что они являются фрагментами из библиотеки поддержки.
Прочитайте эту ссылку о фрагментах.
В вашем случае использования я просто определяю фрагмент в xml.