已解决:只需在手机中进行全新安装即可。我取消了我的应用程序,然后通过android studio重新安装它,一切正常。
我正在尝试创建一个Android应用程序,我有一个"关于"我的操作栏中的菜单项。 当我点击"关于"没有任何事情发生,新的活动永远不会出现。
这是我的代码:
https://example.com/v1/AUTH_account/?extract-archive=tar.gz
即使我在运行程序并单击“选项”菜单上的“约”时检查了该ID与R.id.about相同,但活动仍未启动。
我的DisplayAbout类尽可能简单,只有一个文本视图:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
int id_view = viewGroup.getId();
if (id == R.id.themeChanger) {
if (id_view == R.id.activity_main) {
setContentView(R.layout.activity_main_dark_modern);
} else if(id_view == R.id.dark_modern) {
setContentView(R.layout.activity_main_light_modern);
} else if(id_view == R.id.light_modern)
{
setContentView(R.layout.activity_main);
}
} else if(id == R.id.about)
{
Intent intent = new Intent(this, DisplayAbout.class);
intent.putExtra("key", id);
startActivity(intent);
}
return super.onOptionsItemSelected(item);
}
同样在清单文件中我有:
package com.tzegian.simplelitecalculator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class DisplayAbout extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_about);
}
例如,当id == R.id.themeChanger时,我的代码就像一个魅力,但不适用于" about"下方。
我在android studio工作,我在真正的LG设备上测试。
更新:首次点击选项后的LOGCAT以及第二次点击关于MenuItem后的LOGCAT
<activity
android:name=".DisplayAbout"
android:label="@string/about">
</activity>
答案 0 :(得分:1)
我相信您已经验证过您提到的ID。和
int id = item.getItemId();
不为空(我的意思是观点)
尝试使用,
Intent i = new Intent(getApplicationContext(),DisplayAbout.class); startActivity(ⅰ);
答案 1 :(得分:0)
我的猜测是id错了,vm永远不会进入if块。试一试。
答案 2 :(得分:0)
我通过从手机中取消应用程序来解决我的问题,然后重新进行全新安装。