0

首先,我在 Android 环境中完全是个菜鸟(你可能已经注意到了)。如果您需要任何解释,请询问,我会尽量简短。

App Widget 本身很简单: 1. 我正在尝试用一个按钮创建一个简单的应用小部件。2. 当您点击按钮“Hello World”时,弹出 Toast 消息。

我已经成功地制作了所有的 GUI。我在 AndroidManifest.xml 中声明了所有必要的字符串,我已经对小部件本身进行了布局 - 它完全正常工作并且具有漂亮的视觉效果,所有按钮都是可点击的,甚至声明了 onFocus 和 onPressed 状态。

我失败的是我不能让这个按钮来调用一些动作或功能或类或其他什么。我已经阅读了很多关于 dev.Android 网站的本教程(顺便说一句,它很烂),我还阅读了我用谷歌搜索的其他教程(一般他们只是复制粘贴 dev.Android 的 tuts),没有任何效果,没有都解释了它是如何工作的。

请帮助我找到真正有助于使小部件工作的教程。

反正你统治!谢谢!

4

2 回答 2

0

它们不被称为小部件,您应该将它们称为“应用小部件”或“主屏幕小部件”。

我认为这个链接会对你有所帮助 - http://www.vogella.com/articles/AndroidWidgets/article.html#simplewidget

更新:在应用小部件中单击按钮打开浏览器

Intent openBrowser = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com/"));                       

PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, openBrowser , 0);

remoteViews.setOnClickPendingIntent(R.id.mybutton, pendingIntent);

我假设,您在xml中的 Button idmybutton并且您已经初始化了 remoteViews。

于 2012-09-11T08:43:55.150 回答
0

本教程应该可以帮助您使用 Toast 小部件:

http://developer.android.com/guide/topics/ui/notifiers/toasts.html

当您创建布局时,假设您在布局文件中添加了一个按钮,我们将调用 myLayout.xml:

<Button    
android:id="@+id/Button"
android:text="@string/Button_Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="Method_Name"/>

然后在你的课上你有:

//necessary imports
public class myActivity extends Activity
{

    @Override
    public void onCreate(Bundle savedInstance)
    {
        super.onCreate(savedInstance);
        setContentView(R.layout.myLayout);
    }

    public void Method_Name(View view)
    {
        //Here you would put what you needed from the toast tutorial 
        //So I'll demonstrate how to make hello world pop up
        Context context=getApplicationContext();
        String message="Hello world!";

        Toast toast=new Toast(context, message, Toast.LENGTH_SHORT);
        toast.show();
    }

那么这里发生了什么?好吧,在我们的 myActivity 类中,我们设置了一个 contentView,它将我们的布局文件加载到屏幕上,在这个布局文件中我们有一个按钮(还有其他东西,但它是自动生成的,互联网上有很多东西,布局是不同的主题)。这个使用 onClick 属性的按钮声明了一个要在其内部膨胀的类中调用的方法。然后,当您单击按钮时,将调用方法 METHOD_NAME。我们创建了一个 Toast 小部件,给它一个上下文,它显示的消息以及它将在屏幕上停留多长时间。然后使用 toast.show() 我们向用户显示 toast 通知。

我希望这让事情变得更清楚,如果您需要更多解释或帮助,请说。

于 2012-09-11T08:47:32.667 回答