2014-03-26 134 views
0

小工具只是一個textview和一個按鈕。當用戶點擊按鈕時,新活動啓動。我的按鈕不知何故不打開新的活動(基本上是一個空白的活動)。以下是我的代碼。Android小工具按鈕不起作用

MainActivity

package com.example.widget_ex; 

import android.app.PendingIntent; 
import android.appwidget.AppWidgetManager; 
import android.appwidget.AppWidgetProvider; 
import android.content.Context; 
import android.content.Intent; 
import android.widget.RemoteViews; 


public class MainActivity extends AppWidgetProvider{ 
     @Override 
     public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
      final int N = appWidgetIds.length; 

      for (int i = 0; i < N; i++) { 
       int appWidgetId = appWidgetIds[i]; 

       Intent intent = new Intent(context, New.class); 
       PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

       RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.activity_main); 
       views.setOnClickPendingIntent(R.id.button1, 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" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="34dp" 
     android:layout_marginTop="25dp" 
     android:text="TextView" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@+id/textView1" 
     android:layout_below="@+id/textView1" 
     android:layout_marginTop="19dp" 
     android:text="Button" /> 

</RelativeLayout> 

widgetprovider.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> 

清單

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.widget_ex" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="18" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.widget_ex.New" 
      android:label="@string/app_name"> 
     </activity> 
     <receiver android:name=".MainActivity" > 
      <intent-filter> 
       <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 
      </intent-filter> 
      <meta-data android:name="android.appwidget.provider" 
       android:resource="@xml/widgetprovider" /> 
     </receiver> 
    </application> 

</manifest> 

New.class

package com.example.widget_ex; 

import android.app.Activity; 
import android.os.Bundle; 

public class New extends Activity{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.another); 
    } 

} 

another.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TextView" /> 

</LinearLayout> 

回答

0

您的onUpdate()方法沒有被調用。你必須重寫onUpdate()方法。

+0

感謝您的意見。我將我的代碼更改爲包含@Override,但仍然無法正常工作 – yellowbyte

+0

我也將其更新爲我的問題。謝謝 – yellowbyte

+0

那麼它可能是更多的代碼問題,我期待 – Libin