Реализация панели действий в виде списка

Я хочу реализовать ActionBar в виде списка. Как указано на developer.android.com, я попытался использовать в своем коде действие Extensions ActionBar. Мой код работает нормально, когда я даю, расширяет Activity, но я не получу ActionBar. Код падает, когда я использую, расширяет ActionBarActivity с java.lang.exceptionininitializererror.

Я импортировал библиотеку поддержки. Скриншот прилагается. Импортированные библиотеки: android-support-v4.jar android-support-v7-appcompat.jar.

Ниже мой код. Пожалуйста, объясните мне это.

Также, пожалуйста, дайте мне знать, если я могу сделать это любым другим способом.

public class ImageTextListViewActivity extends Activity implements OnItemClickListener {

public static final String[] titles = new String[] { "Football",
        "Basketball" };

public static final Integer[] images = { R.drawable.football,
        R.drawable.basketball };

ListView listView;
List<RowItem> rowItems;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    //ActionBar actionBar = getSupportActionBar();
   // actionBar.setDisplayShowTitleEnabled(false);
    //android.graphics.drawable.ColorDrawable.setColor(0xff9ACC00);
    //actionBar.setBackgroundDrawable(colorDrawable);
    //actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

    rowItems = new ArrayList<RowItem>();
    for (int i = 0; i < titles.length; i++) {
        RowItem item = new RowItem(images[i], titles[i]);
        rowItems.add(item);
    }

    listView = (ListView) findViewById(R.id.list);
    CustomListViewAdapter adapter = new CustomListViewAdapter(this,
            R.layout.list_item, rowItems);
    listView.setAdapter(adapter);
    listView.setOnItemClickListener(this);
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {

    //Navigation to next page

    Intent myIntent = new Intent(view.getContext(), Football.class);
    myIntent.putExtra("Game",listView.getItemAtPosition(position).toString());
    startActivityForResult(myIntent, 0);

 //Navigation ends

}
}

1 ответ

Решение

Вы должны добавить библиотеку appcompat как проект библиотеки, а не просто импортировать jar.

Импортируйте appcompat в вашу IDE из android_sdk_dir/extras/android/support/v7/appcompat,

Добавьте его в свой проект как проект библиотеки. (Проект -> Свойства -> Android -> Библиотека -> Добавить.. и выберите appcompat).

Не забудьте изменить тему приложения на Theme.AppCompat,

Другие вопросы по тегам