所以,我正在尝试处理BroadcastReceivers和Intent过滤器.我有一个我在MyActivity中创建的自定义Dialog.在对话框中,我有一个按钮.单击该按钮后,我想发送MyActivity接收器将接收的广播.这就是我现在所拥有的:
//MyActivity.java
class myActivity extends Activity {
//MyDialog dialog initialized in onCreate
...
private class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//toast "Broadcast received"
}
}
}
//MyDialog.java
class MyDialog extends Dialog {
//m_context = incoming context from MyActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnCLickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction("android.intent.action.RUN");
m_context.sendBroadcast(intent);
}
});
}
}
//AndroidManifest.xml
<activity android:name=".MyActivity" />
<receiver …Run Code Online (Sandbox Code Playgroud) 我见过类似的问题,但没有符合我需要的答案.我想要一个隐藏的小部件,它位于我的整个应用程序之上(这里没有问题).我想要这个小部件来捕获事件,以便我可以打印关于它们的东西,记录它们,等等.我目前有一个事件过滤器连接,这样做很好.然后我希望它让事件通过窗口小部件后面的任何内容.因此,例如,如果我尝试按下按钮,隐形窗口小部件应该注意到该点上发生了按压,然后实际上应该按下该按钮.这可以通过简单的方式完成,还是我必须编写代码来模拟隐形窗口小部件下面的所有事件?
这是我的代码:
myButton.setOnClickListener( new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
}
});
Run Code Online (Sandbox Code Playgroud)
这给了我这个错误:类型为View的setOnClickListener(View.OnClickListener)方法不适用于参数(new DialogInterface.OnClickListener(){})
我导入了DialogInterface和DialogInterface.OnClickListener。“ myButton”在对话框中。
这是我当前的设置。button1启动对话框,而button2包含在对话框中。
private void setOnClickListeners() {
button1.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View arg0) {
//set up dialog
Dialog dialog = new Dialog(WorkScreen.this);
dialog.setContentView(R.layout.dialog_layout);
dialog.setTitle("My Dialog");
dialog.setCancelable(true);
dialog.show();
}
});
button2.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
});
}
Run Code Online (Sandbox Code Playgroud)
活动加载时崩溃。我还尝试将Dialog声明移到类的顶部,并在onCreate上对其进行初始化,但它没有做任何更改。有想法吗?