【发布时间】:2014-04-20 17:44:29
【问题描述】:
我有两个活动,两个布局和一个操作栏。 我使用的最小 API 是 14。 我从一个活动转到另一个活动,使用意图没有问题,我想在操作栏中制作一个主页按钮以返回我选择的活动。 我实现了一个菜单并使用 android 开发者网站上的指南从 xml 调用它,但是当我从操作栏中单击按钮/菜单时,它会因未捕获的异常而崩溃。
主要活动类:
package com.example.quiz;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
Button new_b;
ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ActionBar actionBar = getActionBar();
actionBar.show();
new_b=(Button)findViewById(R.id.new_button);
new_b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,HomeActivity.class);
startActivity(intent);
};
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main_actions, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.home_button:homeClick();
return true;
case R.id.info_button:homeClick();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void homeClick() {
Intent intent_home = new Intent(this,HomeActivity.class);
intent_home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent_home);
}
}
}
家庭活动类:
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
public class HomeActivity extends Activity {
ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
ActionBar actionBar = getActionBar();
actionBar.show();
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main_actions, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.home_button:homeClick();
return true;
case R.id.info_button:homeClick();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void homeClick() {
Intent intent_home = new Intent(this,HomeActivity.class);
intent_home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent_home);
}
}
}
我可以换一种方式吗,或者我可以做些什么来让它发挥作用?
04-20 19:31:57.610: I/Adreno200-EGL(5708): <qeglDrvAPI_eglInitialize:299>: EGL 1.4 QUALCOMM build:
AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.02.21.107_msm8625_JB_REL_2.0.3_CL3357771_release_AU (CL3357771)
04-20 19:31:57.610: I/Adreno200-EGL(5708): Build Date: 02/25/13 Mon
04-20 19:31:57.610: I/Adreno200-EGL(5708): Local Branch:
04-20 19:31:57.610: I/Adreno200-EGL(5708): Remote Branch: quic/jb_rel_2.0.3
04-20 19:31:57.610: I/Adreno200-EGL(5708): Local Patches: NONE
04-20 19:31:57.610: I/Adreno200-EGL(5708): Reconstruct Branch AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.02.21.107 + NOTHING
04-20 19:31:57.850: W/ResourceType(5708): getEntry failing because entryIndex 14 is beyond type entryCount 1
04-20 19:31:57.850: W/ResourceType(5708): Failure getting entry for 0x7f0b000e (t=10 e=14) in package 0 (error -2147483647)
04-20 19:32:09.390: E/dalvikvm(5708): GC_CONCURRENT freed 2965K, 22% free 12424K/15751K, paused 12ms+26ms, total 75ms
04-20 19:32:10.600: W/dalvikvm(5708): threadid=1: thread exiting with uncaught exception (group=0x41d02438)
【问题讨论】:
标签: android android-intent android-activity android-actionbar uncaught-exception