单击小部件时如何呈现祝酒词?

问题描述 投票:3回答:6

我需要做一个简单的小部件,在点击它时呈现Toast。我的问题是我无法找到或创建一个“oncreate”动作。我看到打开Web浏览器的具有待定意图的示例。但是我如何简单地创建这个:Toast.makeText(context, "activated", Toast.LENGTH_LONG).show();并在每次用户点击小部件时让它发生?为了清楚起见,我的意思是手机发射器上的一个小部件。不是常规的“按钮”小部件等...

public class Widget extends AppWidgetProvider {
NotificationManager mNotificationManager;
Notification notification;

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    super.onUpdate(context, appWidgetManager, appWidgetIds);



    appWidgetManager.updateAppWidget(appWidgetIds, view);
}

}

谢谢!

android widget onclick toast
6个回答
3
投票

只需在小部件Toast.makeText(context, "activated", Toast.LENGTH_LONG).show();onClick()方法中调用View.OnClickListener

Update:

如果你使用AppWidgetProvider所以检查thisthis one帖子


1
投票

我认为你缺少展示创建的Toast。例如:

Toast.makeText(context, "activated", Toast.LENGTH_LONG).show();

而且,覆盖你的自定义onClick类的View方法并在那里弹出吐司。


public class TestButton extends Button {

    public TestButton(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void setOnClickListener(OnClickListener l) {
        super.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(v.getContext(), "activated", Toast.LENGTH_LONG)
                  .show();
            }
        });
    }

}

0
投票
Button btn=(Button) findViewById(R.id.button);

            btn.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
                   Toast.makeText(context, "activated", Toast.LENGTH_LONG).show();


  }
}
});

0
投票

这可能会有所帮助,这里需要传递上下文并使用您的小部件获取Onclick事件

Toast.makeText(context,“activated”,Toast.LENGTH_LONG)。show();


0
投票

试试这个:

button = (Button) findViewById(R.id.buttonToast);

        button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        // Create a piece of toast.
        Toast pieceToast = Toast.makeText(getApplicationContext(), "Test Message", Toast.LENGTH_SHORT);

        // Show the toast.
        pieceToast.show();
    }

这是我的广播接收器类:

public class IncomingCallReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
        if(null == bundle)
            return;
        Log.i("IncomingCallReceiver",bundle.toString());
        String state = bundle.getString(TelephonyManager.EXTRA_STATE);
        String registredPhoneNumber;
        Log.i("IncomingCallReceiver","State: "+ state);
        String phonenumber = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
        System.out.println("*****Mobile Ringing*******"+phonenumber);
        if(state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING))
        {
            registredPhoneNumber = PreferenceConnector.getPhoneNumber(context);
            System.out.println("registredPhoneNumber:  "+registredPhoneNumber);
            System.out.println("phonenumber:   "+phonenumber);
            Log.i("IncomingCallReceiver","Incomng Number: " + phonenumber);
            if(phonenumber.equals(registredPhoneNumber)){
                System.out.println("Entered...");
                String info = "Detect Calls sample application\nIncoming number: " + phonenumber;
                if(isMyServiceRunning(context)){
                    context.stopService(new Intent(context,com.visiomaticamericas.visitormobile.services.LaunchServiceActivity.class));
                    System.out.println("******Service Stopped*********");
                }
                Intent i = new Intent(context,com.services.LaunchServiceActivity.class);
                i.putExtra("delay",500L);
                context.startService(i);
                System.out.println("*****Service Started*****");
                Toast.makeText(context, info, Toast.LENGTH_LONG).show();
            }

        }
    }


}

在这里,我调用了我的活动类..我在我的活动类中完成了我的小部件设计。


0
投票

伙计我的VS环境是VS 2017与Xamarin。

   private void DisplayMessage(string DisplayMsgText)
    {
        Toast.MakeText(this.ApplicationContext, DisplayMsgText, ToastLength.Short).Show();
    }

并使用此功能在设备屏幕上显示消息,如下所示:

DisplayMessage(“按下振动按钮”);

© www.soinside.com 2019 - 2024. All rights reserved.