- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在我的一个应用程序中使用带有两个 MenuItem 的 ABS 4.0,但发现了一个小错误:按下第二个 MenuItem 时,它与第一个完全相同......
我已经尝试了几乎所有我能想到的方法,但它不起作用。我已经更改了 onOptionItemSelected,因为我认为这是我需要编辑的方法。
编辑:
我一直在查看@Ollie 的建议,但 LogCat 和 Debug 都没有显示出奇怪的东西。也许它在代码的其他部分,或者 ABS 的声明中?这是完整的代码,如果你能看一遍,那就太好了!
整个 Activity 的代码,因为它可能在其他地方?
package bas.sie.Antonius;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
public class TeacherInfo extends SherlockActivity {
String URLhome;
String Info;
String TeacherAb;
TextView mTxtvInfo;
Button mBtnTeacherStSchedule;
Button mBtnTeacherDaySchedule;
private static String mainUrl = "http://www.carmelcollegegouda.nl/site_ant/";
private static String endUrl = ".htm";
private static String[] myUrls = { "roosters/dagroosters/Doc_V1_",
"roosters/standaardroosters/Doc1_" };
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contactinfo);
setTitle("Over deze leraar");
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
mTxtvInfo = (TextView) findViewById(R.id.TxtvTeacher);
Intent startingIntent = getIntent();
Info = startingIntent.getStringExtra("contact");
mTxtvInfo.setText(Info);
Intent startingIntent1 = getIntent();
TeacherAb = startingIntent1.getStringExtra("abbrev");
mBtnTeacherDaySchedule = (Button) findViewById(R.id.btnTeacherDaySchedule);
mBtnTeacherStSchedule = (Button) findViewById(R.id.btnTeacherStSchedule);
mBtnTeacherDaySchedule.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
URLhome = makeUrl(0);
Intent i = new Intent(TeacherInfo.this, MyWebView.class);
i.putExtra("home", URLhome);
startActivityForResult(i, 0);
}
});
mBtnTeacherStSchedule.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
URLhome = makeUrl(1);
Intent i = new Intent(TeacherInfo.this, MyWebView.class);
i.putExtra("home", URLhome);
startActivityForResult(i, 0);
}
});
}
private String makeUrl(int index) {
String s = mainUrl + myUrls[index] + TeacherAb + endUrl;
return s;
}// makeurl
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("Instellingen")
.setIcon(R.drawable.ic_settings)
.setShowAsAction(
MenuItem.SHOW_AS_ACTION_IF_ROOM
| MenuItem.SHOW_AS_ACTION_WITH_TEXT);
menu.add("Over de app")
.setIcon(R.drawable.ic_about)
.setShowAsAction(
MenuItem.SHOW_AS_ACTION_IF_ROOM
| MenuItem.SHOW_AS_ACTION_WITH_TEXT);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, AntoniusActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
case R.id.settings:
Intent i = new Intent(this, About.class);
startActivity(i);
return true;
case R.id.about:
Intent about = new Intent(this, About.class);
startActivity(about);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
我认为问题出在菜单项的声明中,但我没有看到那里有任何问题...
你能看看我的 menu.xml 吗?发布在这里:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/settings"
android:icon="@drawable/ic_settings"
android:title="Instellingen"></item>
<item android:id="@+id/about"
android:icon="@drawable/ic_about"
android:title="Over de app"></item>
</menu>
最佳答案
像这样创建菜单:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}
然后使用 switch 语句来处理选择:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// Do stuff
return true;
case R.id.menu_item_2:
// Do stuff
return true;
default:
return super.onOptionsItemSelected(item);
}
}
编辑:最后,您应该为每个项目做不同的事情,如果您将 Intent 目标 Activity 更改为另一个,它会按照您的预期进行:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// ... Stuff ...
case R.id.settings: // Settings item
Intent i = new Intent(this, About.class); // Start About.java Activity, but item says "settings"
// TODO: Change About to Settings?
i = new Intent(this, Settings.class);
startActivity(i);
return true;
case R.id.about: // About item
Intent about = new Intent(this, About.class); // Start About.java Activty
startActivity(about);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
关于java - 具有多个 MenuItem 的 ActionBarSherlock?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9774815/
我通过创建两个不同的项目、库项目和我自己的 android 项目实现了 ActionBarSherlock。现在我正在考虑将库项目放在我的应用程序库目录中并将该项目附加到我的应用程序。这在逻辑上可能吗
与许多其他 Android 开发人员一样,我安装了 Android Studio,但是如何将 actionbarsherlock 安装到 Android Studio 中? 有什么帮助吗?我什至不知道
您好,我在导入后遇到了 ActionBarSherlock 的问题。 我做了以下步骤: 我从库文件夹中导入了东西 我检查了项目是否设置为 IsLibrary 我选择了项目构建目标:Android 4.
我正在迁移我的代码以使用 Actionbarsherlock。我已经完成了我需要的所有代码调整,并且我的项目编译正常没有错误,但是我得到以下异常: java.lang.NoClassDefFoundE
我在 Eclipse 中有一个现有项目 MyProject,它使用库 actionbarsherlock(4.3.1 版)。该项目在 android studio 中编译并运行,但我没有得到构建变体。
我想要 Sherlock 操作栏左侧的微调器,但由于标准行为,它出现在右侧。[见附件图片 如何解决? 最佳答案 好的,我已经通过使用导航列表而不是在 menu.xml 中手动添加微调器来完成此操作:
我正在尝试使用 Eclipse Indigo 和 ADT r20 构建一个带有 ActionBarSherlock 4.1 的小型示例应用程序。 我创建了一个包含空白 Activity 的新 Andr
我已经坚持了好几天/几周了。我正在尝试为 actionbarsherlock 添加 aar,但我一直收到此错误: Failed to notify project evaluation listene
我通过 eclipse 创建了一个新的 Android 项目,其中包含 MainActivity。我将 ActionBarSherlock 添加到项目中(“属性”>“Android”,然后单击“添加”
尝试从 ActionBarSherlock 开始。下载库。使用上次更新设置 ADT,SDK 相同。 尝试进行简单的 Activity : import com.actionbarsherlock.ap
我一直在尝试将 ActionbarSherlock maven 依赖项添加到我的项目中 com.actionbarsherlock library 4.2.0 在我的 po
我想使用支持库 r11(尤其是嵌套片段)的实际版本中的新功能。 ABS 4.2.0 可以实现吗? 谢谢, 米尔科 最佳答案 最新的支持库 r11 似乎在 ABS 4.2 上运行良好。我用 r11 版本
我有一个Android Studio项目,该项目依赖于build.gradle中设置的ActionBarSherlock: dependencies { compile 'com.action
我使用带有 3 个选项卡的 SherlockFragmentActivity。每个选项卡都包含一个 SherlockFragment。 如果我使用以下代码重新启动我的应用程序(以应用主题):(感谢 D
我正在使用 ActionBarSherlock、Scala、Sbt 和 android-plugin。一切都工作正常,但突然无法编译。我使用 git 回退到以前有效的提交,但它仍然会抛出以下 12 个
我试图弄清楚为什么我的 APK 在导出时有 21 MB 大。我正在使用 HoloEverywhere 和 ActionBarSherlock,因此我正在做一个实验,看看如果没有它们,我的 APK 会有
我有一个扩展 SherlockFragment 的类,它有一个 actionbarItem“过滤器” TabbedFragment.java public class TabbedFragment e
首先,我想说我已经修改了方法needsDividerBefore,现在菜单项之间出现了分隔线。但是,我想自定义这个分隔线,我尝试了前面提到的所有方法,但我没有成功。 其次,我想要的分隔线与使用的 fo
我有很多菜单项 - 有些是用 Java 代码定义的,有些是用 XML 定义的。 XML 中的那些都将 orderInCategory 设置为较高的值。 在代码中定义的项目中,有些有图标,有些没有。只有
我有一个使用 Viewpagerindicator 的应用程序。我正在使用它的标签部分。我使用黑色背景和默认的蓝色指示器颜色。我想在我的应用程序中添加一个操作栏,所以我开始使用 Actionbarsh
我是一名优秀的程序员,十分优秀!