Android 单击小部件时如何敬酒?
我需要做一个简单的小部件,当点击它时,它会显示一个祝酒词。 我的问题是,我找不到如何获得或创建“oncreate”操作。我看到的示例具有打开web浏览器的待定意图。但是我如何简单地创建它:Android 单击小部件时如何敬酒?,android,widget,onclick,toast,Android,Widget,Onclick,Toast,我需要做一个简单的小部件,当点击它时,它会显示一个祝酒词。 我的问题是,我找不到如何获得或创建“oncreate”操作。我看到的示例具有打开web浏览器的待定意图。但是我如何简单地创建它:Toast.makeText(上下文,“已激活”,Toast.LENGTH\u LONG.show()并让它在用户每次单击小部件时发生? 我只是想说清楚,我指的是手机启动器上的一个小部件。不是一个普通的“按钮”小部件等 public class Widget extends AppWidgetProvider
Toast.makeText(上下文,“已激活”,Toast.LENGTH\u 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);
}
}
谢谢 只需调用Toast.makeText(上下文,“已激活”,Toast.LENGTH_LONG.show()小部件的
onClick()
查看方法中的code>。OnClickListener
更新:
如果您使用
AppWidgetProvider
,那么请检查并发布我认为您缺少显示创建的Toast
。例如:
Toast.makeText(context, "activated", Toast.LENGTH_LONG).show();
此外,重写自定义视图
类的onClick
方法,并在那里弹出toast
试试这个:
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();
}
}
}
}
在这里,我给我的活动课打了电话。。我在我的活动类中设计了小部件。这可能会有所帮助,这里需要传递上下文并用小部件获取Onclick事件
Toast.makeText(上下文“已激活”,Toast.LENGTH_LONG.show() 各位,我的VS环境是2017年与Xamarin的VS 并使用此功能在设备屏幕上显示消息 如下图所示: 显示信息(“振动按钮按下”)
扩展AppWidgetProvider的类中没有View.onClickListener。只有SetOnClickPendingEvent。你应该在问题中写下你想要处理app_图标点击事件以更清晰。它不是app_图标点击,而是一个小部件点击启动器。我只是想说。正确地表达你的问题。我表达了我的问题,thanx!谢谢,我一秒钟前加的。不是这样。如何在扩展BroadcastReceiver的类中设置“view.setonclicklistener”。这是不可能的。我说的是你的自定义视图类,看看我的更新答案吧。我想这不会让我停滞不前,因为我对android有点陌生,但我不知道如何将“TestButton”与主屏幕上的小部件联系起来?但我会试试看。谢谢。
TestButton
是一个典型的类。目的是向您展示如何在处理自定义视图时覆盖按钮的onClick
。如何在扩展BroadcastReceiver的类中设置“view.setonclicklistener”。这是不可能的。你还在做button.setOnClickListener!!您不能在AppWidgetProvider中执行此操作!你们中没有人读过评论:)我们不能这样做。。所以,您只需从BroadcastReceiver扩展类的OnReceiveMethod调用activity类。您只需在活动类下设计UI。。请参阅我编辑的问题。在扩展BroadcastReceiver的类中没有“findviewbyid”。这是不可能的。如果您使用的是BroadcastReceiver,则在Activity.And toast的onReceive()方法中的按钮单击事件上发送广播消息。如何在扩展BroadcastReceiver的类中设置“view.setonclicklistener”。这是不可能的。你甚至不能在AppWidgetProvider中执行“findViewById”!再次看到我的问题,它是一个主屏幕小部件!不是普通的按钮。你就是做不到。为什么-1?谁能解释一下这个问题出了什么问题?我想有人不喜欢你最初的问题。好的,谢谢。你帮了我很多。
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();
}
}
}
}
private void DisplayMessage(string DisplayMsgText)
{
Toast.MakeText(this.ApplicationContext, DisplayMsgText, ToastLength.Short).Show();
}