Добавление панели действий в ListActivity

Я очень новичок в Android. Мне нужна помощь и ваше предложение здесь.
Я работаю в Android начиная с последнего января, у меня здесь проблемы. Я все еще работаю над приложением для Android 2.3. Очень простое приложение. Я читал о панели действий, и я предлагаю библиотеке, такой как greendroid, sherlock actionbar и последний файл действий Johan Nilson. Мне все еще сложно интегрировать его в свое приложение. Поэтому я пытаюсь создать свою собственную панель действий, и проблема возникла одна за другой. Один из них: сложно комбинировать панель действий с моим списком ListView, чтобы по-прежнему оставаться в верхней части экрана, даже в режиме просмотра списка. Наконец, макет панели действий генерируется в заголовок ListView:

View header = getLayoutInflater().inflate(R.layout.header, null); ListView listView = getListView(); listView.addHeaderView(header); 

И кнопка & imagebutton не работает для события click.

 //try action button in actionbar Menu1 = (Button) this.findViewById(id.button1); Menu1.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { Toast.makeText(List_direktoriJson.this, "action bar..", Toast.LENGTH_LONG).show(); } }); 

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

Если вам удастся включить одну из библиотек Action Bar, таких как Sherlock, это будет намного проще:

  private class YourListActivity extends SherlockListActivity { } 

Почему вы добавляете панель действий в заголовок ListView? Если вы это сделаете, панель действий всегда будет прокручиваться с помощью ListView. Добавьте панель действий в макет вашего ListActivity. Что-то вроде:

 <merge xmlns:android="http://schemas.android.com/apk/res/android"> <include android:id="@+id/action_bar" layout="@layout/header" /> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> <!-- May be some other views --> </merge> 

Затем в onCreate() задайте просмотр содержимого активности:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_of_the_activity); setListAdapter(...); // get action bar view View header = findViewById(R.id.action_bar); // and then set click listeners. Note that findViewById called on header, not on this Menu1 = (Button) header.findViewById(R.id.button1); Menu1.setOnClickListener(...); } 

Статья о тегах <merge> и <include> .

Intereting Posts
Как показать субтитры в android ExoPlayer Двухпроходный макет интерфейса: почему? Изменить флажок «Контекстная панель действий» или сделать допустимым? Импорт com.google.android.gms.location.LocationClient не может быть разрешен после форматирования компьютера AndroidHttpClient не найден (при работе Robolectric) Проблемы с ресурсом Android после обновления до Xamarin Forms 2.0 ClassNotFoundException после перехода на ADT 18 Избегайте активности заставки при нажатии кнопки «Назад» Каков наилучший способ изучения Android для кого-то, у кого нет опыта программирования? Можно перемещать плиточный фон? (Бесконечный свиток с TileMode.REPEAT) Жизненный цикл активности Android Почему эта переменная установлена ​​в пустую строку, когда она уже инициализирована пустой строкой? Размер битмапа ошибки outofmemory для Android превышает бюджет vm в 2.3.3 Версия SQLite, используемая в Android? Использовать класс приложения для глобальных переменных