Android Studio-如何让小部件打开URL而不是MainActivity



我正在尝试让小部件直接打开表单。目前,小部件必须从主屏幕中选择,然后需要选择应用程序中的按钮才能重定向到表单。

如何在主屏幕上获取Widget以直接重定向到表单?

MainActivity.java

package com.example.redirectwidget;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import app.com.sample.R;
public class MainActivity extends Activity {
Button UrlOpen;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
UrlOpen = (Button) findViewById(R.id.button1);
UrlOpen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent Getintent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://form.jotform.com/212974804322152"));
startActivity(Getintent);
}
});
}
}

AppWidget.java

package com.example.redirectwidget;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.widget.RemoteViews;
import app.com.sample.R;
/**
* Implementation of App Widget functionality.
*/
public class AppWidget extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
for (int appWidgetID : appWidgetIds){
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.app_widget);
views.setOnClickPendingIntent(R.id.button_register, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetID, views);
}
}
}

activity_main.xml

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.redirectwidget.MainActivity" >
<Button android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Click Here" />
</RelativeLayout>

app_widget_info.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/Widget.RedirectWidget.AppWidget.Container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@style/Theme.RedirectWidget.AppWidgetContainer">

<Button
android:id="@+id/button_register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Register" />
<TextView
android:id="@+id/appwidget_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>

在MainActivity.java中的OnCreate方法中使用intent

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.codinginflow.widgetexample.R;

public class MainActivity extends Activity {
Button UrlOpen;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent Getintent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.google.com"));
startActivity(Getintent);
}
}

最新更新