安卓开发入门之小部件Widgets(翻译)附源码

来源:互联网 发布:php curl post提交 编辑:程序博客网 时间:2024/05/16 14:57


原文链接

https://www.tutorialspoint.com/android/android_widgets.htm


1.MainActivity.java文件内容

public class MainActivity extends AppCompatActivity{    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }}

2.res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?><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" android:paddingLeft="@dimen/activity_horizontal_margin"   android:paddingRight="@dimen/activity_horizontal_margin"   android:paddingTop="@dimen/activity_vertical_margin"   android:paddingBottom="@dimen/activity_vertical_margin"   tools:context=".MainActivity"   android:transitionGroup="true">      <TextView      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:text="Tutorials point"      android:id="@+id/textView"      android:layout_centerHorizontal="true"      android:textColor="#ff3412ff"      android:textSize="35dp" />         <Button      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:text="Widget"      android:id="@+id/button"      android:layout_centerHorizontal="true"      android:layout_marginTop="61dp"      android:layout_below="@+id/textView" /></RelativeLayout>

3.res/xml/mywidget.xml

<?xml version="1.0" encoding="utf-8"?><appwidget-provider    xmlns:android="http://schemas.android.com/apk/res/android"    android:minWidth="146dp"    android:updatePeriodMillis="0"    android:minHeight="146dp"    android:initialLayout="@layout/activity_main"></appwidget-provider>


4.MyWidget.java文件

public class MyWidget extends AppWidgetProvider{    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {        for(int i=0; i<appWidgetIds.length; i++){            int currentWidgetId = appWidgetIds[i];            String url = "http://www.baidu.com";            Intent intent = new Intent(Intent.ACTION_VIEW);            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);            intent.setData(Uri.parse(url));            PendingIntent pending = PendingIntent.getActivity(context, 0,intent, 0);            RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.activity_main);            views.setOnClickPendingIntent(R.id.button, pending);            appWidgetManager.updateAppWidget(currentWidgetId,views);            Toast.makeText(context, "widget added", Toast.LENGTH_SHORT).show();        }    }}


5.AndroidManifest.xml 

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"          package="com.crook.mywidget">    <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN"/>                <category android:name="android.intent.category.LAUNCHER"/>            </intent-filter>        </activity>        <receiver android:name=".MyWidget">            <intent-filter>                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action>            </intent-filter>            <meta-data android:name="android.appwidget.provider"                       android:resource="@xml/mywidget"></meta-data>        </receiver>    </application></manifest>





源码下载

http://download.csdn.net/detail/zhangxiangliang2/9873882


阅读全文
0 0