Android删除要匹配的参数";意图();
我正在尝试启动第二个活动,但代码出错Android删除要匹配的参数";意图();,android,Android,我正在尝试启动第二个活动,但代码出错 import android.os.Bundle; import android.content.Intent; import android.app.Activity; import android.widget.Button; import android.view.View; import android.app.Activity; import android.content.Intent; import android.view.Menu; i
import android.os.Bundle;
import android.content.Intent;
import android.app.Activity;
import android.widget.Button;
import android.view.View;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewStub;
import android.widget.AdapterView;
import android.widget.ImageButton;
import android.widget.Toast;
public class MainActivity extends Activity
{
private static final int ID_SPLASH = 1;
private static final int ID_MAIN = 2;
private static final int ID_PROFILE = 3;
private static final int ID_PLAY = 4;
private static final int ID_HELP = 5;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setContentView(R.layout.main);
ImageButton menuBtn = (ImageButton)findViewById(R.id.iBtn1);
//Button example1Btn = (Button) findViewById(R.id.btn1);
ActionItem splashItem = new ActionItem(ID_SPLASH, "Splash", getResources().getDrawable(R.drawable.ic_action_about));
ActionItem mainItem = new ActionItem(ID_MAIN, "Main", getResources().getDrawable(R.drawable.ic_content_undo));
ActionItem profileItem = new ActionItem(ID_PROFILE, "Profile", getResources().getDrawable(R.drawable.ic_social_person));
ActionItem playItem = new ActionItem(ID_PLAY, "Play", getResources().getDrawable(R.drawable.ic_hardware_gamepad));
ActionItem helpItem = new ActionItem(ID_HELP, "Help", getResources().getDrawable(R.drawable.ic_action_help));
//use setSticky(true) to disable QuickAction dialog being dismissed after an item is clicked
helpItem.setSticky(true);
final QuickAction mQuickAction = new QuickAction(this);
mQuickAction.addActionItem(splashItem);
mQuickAction.addActionItem(mainItem);
mQuickAction.addActionItem(profileItem);
mQuickAction.addActionItem(playItem);
mQuickAction.addActionItem(helpItem);
//setup the action item click listener
mQuickAction.setOnActionItemClickListener(new QuickAction.OnActionItemClickListener() {
@Override
public void onItemClick(QuickAction quickAction, int pos, int actionId) {
ActionItem actionItem = quickAction.getActionItem(pos);
if (actionId == ID_SPLASH) {
Intent intent = new Intent(this, SplashActivity.class);
startActivity(intent);
} else if (actionId == ID_MAIN) {
Toast.makeText(getApplicationContext(), "Main---> item selected", Toast.LENGTH_SHORT).show();
} else if (actionId == ID_PROFILE) {
Toast.makeText(getApplicationContext(), "Profile---> item selected", Toast.LENGTH_SHORT).show();
} else if (actionId == ID_PLAY) {
Toast.makeText(getApplicationContext(), "Play---> item selected", Toast.LENGTH_SHORT).show();
} else if (actionId == ID_HELP) {
Toast.makeText(getApplicationContext(), "Help---> item selected", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), actionItem.getTitle() + " selected", Toast.LENGTH_SHORT).show();
}
}
});
mQuickAction.setOnDismissListener(new QuickAction.OnDismissListener() {
@Override
public void onDismiss() {
Toast.makeText(getApplicationContext(), "Ups..dismissed", Toast.LENGTH_SHORT).show();
}
});
menuBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mQuickAction.show(v);
}
});
}
}
它不喜欢从新开始的一切
我觉得我是按照指示做的
您试图作为上下文传递的实际上是
onActionItemClickListener()
,这将不起作用
应该使用getBaseContext()
Intent Intent=newintent(getBaseContext(),SplashActivity.class)代码>
编辑:
或者你也可以
Intent Intent=新的Intent(MainActivity.this、SplashActivity.class)代码>在Java中,此
引用包含代码的类的当前实例
import android.os.Bundle;
import android.content.Intent;
import android.app.Activity;
import android.widget.Button;
import android.view.View;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewStub;
import android.widget.AdapterView;
import android.widget.ImageButton;
import android.widget.Toast;
public class MainActivity extends Activity
{
private static final int ID_SPLASH = 1;
private static final int ID_MAIN = 2;
private static final int ID_PROFILE = 3;
private static final int ID_PLAY = 4;
private static final int ID_HELP = 5;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setContentView(R.layout.main);
ImageButton menuBtn = (ImageButton)findViewById(R.id.iBtn1);
//Button example1Btn = (Button) findViewById(R.id.btn1);
ActionItem splashItem = new ActionItem(ID_SPLASH, "Splash", getResources().getDrawable(R.drawable.ic_action_about));
ActionItem mainItem = new ActionItem(ID_MAIN, "Main", getResources().getDrawable(R.drawable.ic_content_undo));
ActionItem profileItem = new ActionItem(ID_PROFILE, "Profile", getResources().getDrawable(R.drawable.ic_social_person));
ActionItem playItem = new ActionItem(ID_PLAY, "Play", getResources().getDrawable(R.drawable.ic_hardware_gamepad));
ActionItem helpItem = new ActionItem(ID_HELP, "Help", getResources().getDrawable(R.drawable.ic_action_help));
//use setSticky(true) to disable QuickAction dialog being dismissed after an item is clicked
helpItem.setSticky(true);
final QuickAction mQuickAction = new QuickAction(this);
mQuickAction.addActionItem(splashItem);
mQuickAction.addActionItem(mainItem);
mQuickAction.addActionItem(profileItem);
mQuickAction.addActionItem(playItem);
mQuickAction.addActionItem(helpItem);
//setup the action item click listener
mQuickAction.setOnActionItemClickListener(new QuickAction.OnActionItemClickListener() {
@Override
public void onItemClick(QuickAction quickAction, int pos, int actionId) {
ActionItem actionItem = quickAction.getActionItem(pos);
if (actionId == ID_SPLASH) {
Intent intent = new Intent(this, SplashActivity.class);
startActivity(intent);
} else if (actionId == ID_MAIN) {
Toast.makeText(getApplicationContext(), "Main---> item selected", Toast.LENGTH_SHORT).show();
} else if (actionId == ID_PROFILE) {
Toast.makeText(getApplicationContext(), "Profile---> item selected", Toast.LENGTH_SHORT).show();
} else if (actionId == ID_PLAY) {
Toast.makeText(getApplicationContext(), "Play---> item selected", Toast.LENGTH_SHORT).show();
} else if (actionId == ID_HELP) {
Toast.makeText(getApplicationContext(), "Help---> item selected", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), actionItem.getTitle() + " selected", Toast.LENGTH_SHORT).show();
}
}
});
mQuickAction.setOnDismissListener(new QuickAction.OnDismissListener() {
@Override
public void onDismiss() {
Toast.makeText(getApplicationContext(), "Ups..dismissed", Toast.LENGTH_SHORT).show();
}
});
menuBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mQuickAction.show(v);
}
});
}
}
这里
您正在OnItemClickListener类实例的方法OnItemClickListener中创建intent。这被称为“匿名内部类”。匿名,因为它没有名称(不同于公共类MyClass
),而内部,因为它只存在于声明它的类实例中
因此,此
引用单击侦听器的实例
相反,使用外部类的实例—您的活动
Intent intent = new Intent(MainActivity.this, SplashActivity.class);
考虑这一点的另一种方式是,您正在使用的意图的构造函数期望上下文作为第一个参数
从文档中:
意图(Context packageContext,类cls)为
特定组件
因为活动扩展了上下文,所以您的活动是上下文的实例。OnActionItemClickListener是一个类,因此编译器将生成编译时错误。请写下所有项目代码,如果没有关于错误的详细信息,将无法帮助您。可能是您需要导入Intent,您的上下文不正确,您的活动类不存在等。这在另一个文件中,但错误是删除参数以匹配“Intent()”。我也刚刚找到了这个,不确定我之前在谷歌搜索的内容没有出现。几乎是对的。onActionItemClickListener()不是上下文。这是一个类实例。上下文是Android中的一个基类,活动就是从它派生的。