【问题标题】:Implementing Action Bar in list view在列表视图中实现操作栏
【发布时间】:2013-10-24 17:11:44
【问题描述】:

我想在列表视图中实现一个 ActionBar。 正如 developer.android.com 中给出的,我尝试在我的代码中使用扩展 ActionBar 活动。 当我提供扩展 Activity 时,我的代码运行良好,但我不会得到 ActionBar。 当我使用带有 java.lang.exceptionininitializererror 的扩展 ActionBarActivity 时,代码会崩溃。

我已经导入了支持库。附上截图。 导入的库是 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

}
}

【问题讨论】:

  • manifest 中你的 minsdk 版本是什么
  • 是8。
  • 您的活动必须扩展ActionBarActivity
  • 当我扩展 ActionBar 活动时,它会引发错误 java.lang.exceptionininitializererror。代码崩溃,应用程序停止。
  • 你是如何引用库应用程序紧凑的

标签: android android-listview android-actionbar-compat android-actionbaractivity


【解决方案1】:

您必须将 appcompat 库添加为库项目,而不仅仅是导入 jar。

appcompatandroid_sdk_dir/extras/android/support/v7/appcompat 导入到您的 IDE。

将其作为库项目添加到您的项目中。 (项目 -> 属性 -> Android -> 库 -> 添加.. 并选择 appcompat)。

别忘了把应用主题改成Theme.AppCompat

【讨论】:

  • 哎呀...对不起,我忘了提。已将其添加为 JAVA 构建路径中的库项目。
  • 您不能从 java 构建路径添加它。按照我在回答中的说明删除并添加它
  • 非常感谢。我试试看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-05
相关资源
最近更新 更多