问个安卓上的问题,intent.setclass(Activity1.this,Activity.class),在启动到另一个类时,为什么不是Activity1.class,而要用Activity1.this??
1条回答 默认 最新
- 你知我知皆知 2024-08-02 12:14关注
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
你好!这个问题是因为Android的Intent机制。当你使用
setClass()
方法来设置一个新的活动时,实际上是在创建一个新实例而不是调用当前活动的类名。如果你想要执行的是将当前活动(即this
)转换为另一个类的行为,那么你应当这样做:Intent intent = new Intent(this, YourNewActivity.class); startActivity(intent);
在这个例子中,
YourNewActivity
是你要创建的新类的名称。如果你想让你的意图传递给某个对象而不是整个activity,你可以这样写:
Intent intent = new Intent(this, YourNewActivity.class); intent.putExtra("key", "value"); startActivityForResult(intent, 0); // 设置请求码和参数
在这个例子中,
YourNewActivity
是你新的活动类的名字,"key"
是你的参数,0
是你的请求码。解决 无用评论 打赏 举报