- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序中有一个自定义弹出窗口(快速操作),使用 this project 。我想在单击按钮(在此弹出窗口中)后开始 Activity 。这是带有弹出窗口的 Activity 代码:
public class FirstActivity extends Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView popupButton = (ImageView) this.findViewById(R.id.popup_btn);
popupButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupWindow dw = new PopupWindow(v);
dw.showLikePopDownMenu();
}
});
}
// my stuff
//popup window
private class PopupWindow extends PopupWindowActivity implements OnClickListener {
public PopupWindow(View anchor) {
super(anchor);
}
@Override
protected void onCreate() {
// inflate layout
LayoutInflater inflater =
(LayoutInflater) this.anchor.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewGroup root = (ViewGroup) inflater.inflate(R.layout.popup, null);
// setup button events
ImageView aboutButton = (ImageView) findViewById(R.id.btn_about);
aboutButton.setOnClickListener(this);
this.setContentView(root);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_about: {
Intent activity = new Intent(FistActivity.this, About.class);
startActivity(activity);
break;
}
}
}}
但是这种从弹出窗口启动 Activity 的方法不起作用。这是代码的另一个版本(在源 PopupWindow 中是私有(private)静态类):
私有(private)静态类 PopupWindow 扩展 PopupWindowActivity 实现 OnClickListener { 公共(public) PopupWindow(查看 anchor ){ super ( anchor ); }
@Override
protected void onCreate() {
// inflate layout
LayoutInflater inflater =
(LayoutInflater) this.anchor.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewGroup root = (ViewGroup) inflater.inflate(R.layout.popup, null);
// setup button events
ImageView aboutButton = (ImageView) findViewById(R.id.btn_about);
aboutButton.setOnClickListener(this);
this.setContentView(root);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_about: {
Intent intent = new Intent();
intent.setClass(this, About.class);
startActivity(intent);
break;
}
default:
break;
}
}}
eclipse说首先我应该从private static class PopupWindow extends PopupWindowActivity Implements...
删除static,然后我有以下intent.setClass(这个,About.class);
:
The method setClass(Context, Class<?>) in the type Intent is not applicable for the arguments (FirstActivity.PopupWindow, Class<About>).
请帮忙解决这个问题。
<小时/>添加日志。当我按下按钮打开弹出窗口时,应用程序强制关闭并显示以下日志:
03-09 21:37:18.259: D/AndroidRuntime(9037): Shutting down VM
03-09 21:37:18.259: W/dalvikvm(9037): threadid=1: thread exiting with uncaught exception (group=0x40018578)
03-09 21:37:18.259: E/AndroidRuntime(9037): FATAL EXCEPTION: main
03-09 21:37:18.259: E/AndroidRuntime(9037): java.lang.NullPointerException
03-09 21:37:18.259: E/AndroidRuntime(9037): at com.example.FirstActivity$PopupWindow.onCreate(FirstActivity.java:118)
03-09 21:37:18.259: E/AndroidRuntime(9037): at com.example.PopupWindowActivity.<init>(PopupWindowActivity.java:52)
03-09 21:37:18.259: E/AndroidRuntime(9037): at com.example.FirstActivity$PopupWindow.<init>(FirstActivity.java:103)
03-09 21:37:18.259: E/AndroidRuntime(9037): at com.example.FirstActivity$1.onClick(FirstActivity.java:32)
03-09 21:37:18.259: E/AndroidRuntime(9037): at android.view.View.performClick(View.java:2485)
03-09 21:37:18.259: E/AndroidRuntime(9037): at android.view.View$PerformClick.run(View.java:9080)
03-09 21:37:18.259: E/AndroidRuntime(9037): at android.os.Handler.handleCallback(Handler.java:587)
03-09 21:37:18.259: E/AndroidRuntime(9037): at android.os.Handler.dispatchMessage(Handler.java:92)
03-09 21:37:18.259: E/AndroidRuntime(9037): at android.os.Looper.loop(Looper.java:130)
03-09 21:37:18.259: E/AndroidRuntime(9037): at android.app.ActivityThread.main(ActivityThread.java:3687)
03-09 21:37:18.259: E/AndroidRuntime(9037): at java.lang.reflect.Method.invokeNative(Native Method)
03-09 21:37:18.259: E/AndroidRuntime(9037): at java.lang.reflect.Method.invoke(Method.java:507)
03-09 21:37:18.259: E/AndroidRuntime(9037): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
03-09 21:37:18.259: E/AndroidRuntime(9037): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
03-09 21:37:18.259: E/AndroidRuntime(9037): at dalvik.system.NativeStart.main(Native Method)
最佳答案
您可能需要将上下文传递到您的 Intent 中。尝试通过创建接受 Context 作为参数之一的构造函数,将上下文传递到您的 popupwindowactivity
例如。
private static class PopupWindow extends PopupWindowActivity implements OnClickListener {
private Context context; //you now have access to context!
public PopupWindow(View anchor, Context context) { //new constructor
super(anchor);
this.context = context; //notice this!
}
@Override
protected void onCreate() {
// inflate layout
LayoutInflater inflater =
(LayoutInflater) this.anchor.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewGroup root = (ViewGroup) inflater.inflate(R.layout.popup, null);
// setup button events
ImageView searchButton = (ImageView) findViewById(R.id.btn_about);
algebraButton.setOnClickListener(this);
this.setContentView(root);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_about: {
Intent intent = new Intent();
intent.setClass(context, About.class); //using the context down here!!
startActivity(intent);
break;
}
default:
break;
}
}}
注意代码intent.setClass(上下文,About.class);它利用您传入的上下文
关于java - 如何从 Quickaction 启动 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9625927/
我正在使用 here 中的代码创建快速操作。 我正在编写一个游戏,我想使用快速操作功能作为菜单。因此,当用户单击“暂停”时,我想删除或禁用单击“重置”按钮.. 或者如果你有比我更好的想法,我可以改变,
我有一个可点击的 FrameLayout,我想在长按后在其顶部显示一些快速操作。我可以创建一个 QuickAction 来像旧的 Twitter 应用程序一样弹出它,但我不确定如何像当前应用程序一样显
我的应用程序中有一个自定义弹出窗口(快速操作),使用 this project 。我想在单击按钮(在此弹出窗口中)后开始 Activity 。这是带有弹出窗口的 Activity 代码: public
我想在联系人中的 QucikAction 对话框中添加我自己的应用程序图标 在安卓系统中。我找到了这个 http://www.londatiga.net/it/how-to-create-quicka
我试图在按下 QuickAction 中的按钮时显示 AlertDialog。但是我的应用程序在尝试完成此任务时崩溃了。我不知道是什么导致了错误。我还尝试使用 Thread.sleep 来给时间Qui
我的问题是,当我在 EditText(版本 4.0.3)中选择一些文本时,QuickAction(显示多个选项,如剪切、复制、粘贴)将出现在所选文本附近。我不需要这个弹出窗口,所以我怎么能把它关掉或类
如何检查我的 Swift 应用程序是否使用 QuickAction 打开?我正在寻找可以在 viewDidLoad 内部的解决方案。 例如 override func viewDidLoad() {
我一直在尝试在我的应用程序中实现 QuickActions UI 模式。我发现了几个添加了 QuickAction 的库,但它们都有一个共同点——QuickAction 弹出窗口总是在 Activit
我想从 android's blog 添加模式 6:QuickActions到我的应用程序。 任何代码 fragment ? 有人尝试过吗? 这应该在 android 1.5 上工作吗? 最佳答案 我
我有一个带有标签栏 Controller 和五个用 Objective-C 编写的 ViewController 的 iOS 应用程序。 现在,我在 Info.plist 文件中声明了 QuickAc
在这里找到不错的教程QuickAction Dialog . 我需要在 QuickAction 对话框中添加简单的 Listview。请建议我做什么。 我已经创建了一些东西,但是 ListView 没
我使用的是 Mac OS X 11.0.1 Big Sur 我使用 Automator 创建了一个“看我做”的 QuickAction。我已经保存了它(似乎默认保存在 ~/Library/Servic
任何人都可以告诉我如何单击robotium中的快速操作图标[屏幕上可见的按钮,只有图标,没有文本标签]。我需要自动化一些测试用例,但我无法自动化如何点击快速操作图标。 谢谢你, 馒头 最佳答案 单击第
我已经在 Info.plist 中为在 Xcode 中创建并用 Swift 编写的 iOS 应用程序创建了一些(静态)QuickActions。 我无法让他们打开 ViewController。当然,
我是一名优秀的程序员,十分优秀!