在非Activity类里面启动Intent、Toast等。

有时我们在做ListView或ViewPage等控件的应用的时候,往往是要在在这些控件的Adapter里做事件监听的,但是在Adapter类里启动一个Intent是不能直接启动的,所以需要做一下这样的处理:

首先在当前运行的Activity里声明一个静态对象:public static MainActivity mactivity;

然后在其onCreate里的添加一句:mactivity=this;

然后这个时候就可以在Adapter类里面调用:

Toast.makeText(MainActivity.mactivity, "点击项", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.mactivity, A.class);
MainActivity.mactivity.startActivity(intent);

这样就可以实现想要的效果了。

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
好的,这里是一个使用隐式intent启动Activity完成数据传递和结果返回的样例代码: 在调用方Activity中: ``` // 创建一个用于传递数据的Bundle对象 Bundle data = new Bundle(); data.putString("name", "John"); data.putInt("age", 25); // 创建一个intent对象,设置action和category Intent intent = new Intent(); intent.setAction("com.example.ACTION_VIEW"); intent.addCategory("android.intent.category.DEFAULT"); // 将数据附加到intentintent.putExtras(data); // 启动目标Activity并等待返回结果 startActivityForResult(intent, 1); ``` 在目标Activity中: ``` // 从intent中获取传递的数据 String name = getIntent().getStringExtra("name"); int age = getIntent().getIntExtra("age", 0); // 创建一个用于返回结果的intent对象 Intent resultIntent = new Intent(); resultIntent.putExtra("result", "success"); // 将结果设置到intent中并返回 setResult(Activity.RESULT_OK, resultIntent); finish(); ``` 在调用方Activity中获取返回结果: ``` @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == Activity.RESULT_OK) { String result = data.getStringExtra("result"); Toast.makeText(this, "Result: " + result, Toast.LENGTH_SHORT).show(); } } ``` 以上代码用于启动一个名为"com.example.ACTION_VIEW"的Activity,将数据"name"和"age"传递到目标Activity中,并等待目标Activity返回结果。在目标Activity中,获取传递的数据并设置返回结果。最后,在调用方Activity中获取返回结果并显示一个Toast提示。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bricke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值