java - 在单击侦听器回调中获取活动上下文
问题描述
public class MainActivity extends AppCompatActivity {
final int SEND_SMS_PERMISSION_REQUEST_CODE =1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button= (Button) findViewById(R.id.btnSend1);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(checkPermission(Manifest.permission.SEND_SMS)){
SmsManager smqr = SmsManager.getDefault();
smqr.sendTextMessage("000000000", null, "Message", null, null);
}
else
{
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.SEND_SMS},SEND_SMS_PERMISSION_REQUEST_CODE);
}
}
private boolean checkPermission(String permission) {
int check = ContextCompat.checkSelfPermission(this,permission);
return (check == PackageManager.PERMISSION_GRANTED);
}
});
}
}
我已经编写了这段代码来制作一个简单的应用程序来将味精发送到电话号码,在 android studio 中它在“this”下放置了红线我不知道为什么提前谢谢
解决方案
你需要一个上下文,this
在里面是Interface
指接口本身而不是activity
上下文。
使用下面的代码:
public class MainActivity extends AppCompatActivity {
private Context context;
final int SEND_SMS_PERMISSION_REQUEST_CODE =1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
setContentView(R.layout.activity_main);
Button button= (Button) findViewById(R.id.btnSend1);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(checkPermission(Manifest.permission.SEND_SMS)){
SmsManager smqr = SmsManager.getDefault();
smqr.sendTextMessage("000000000", null, "Message", null, null);
}
else
{
ActivityCompat.requestPermissions(context,new String[]{Manifest.permission.SEND_SMS},SEND_SMS_PERMISSION_REQUEST_CODE);
}
}
private boolean checkPermission(String permission) {
int check = ContextCompat.checkSelfPermission(this,permission);
return (check == PackageManager.PERMISSION_GRANTED);
}
});
}
}
推荐阅读
- ios - 设置自定义 UITableViewHeaderFooterView 以实现可重用性
- android - 在 kotlin android 中将 isChecked 设置为 true 后,单选按钮变得不可点击
- node.js - “myTable”未与模型关联
- sql - 有没有办法连接两个表,然后按某些属性分组
- android - 使用 EventChannel 的 Flutter 插件
- node.js - 如何使用signedUrl将文件上传到谷歌云存储桶
- python - 如何获取单元格的值并将其插入条目?
- r - 使用预测函数加权
- selenium - 无法单击子菜单列表中的第 16 个元素
- python - 使用 InceptionV3 的 MNIST 的错误输入形状