2010-02-12 85 views
0

我正在嘗試爲SMS小部件編寫代碼。我寫了一些可以編譯的東西,並在屏幕上打印我的第一條短信。當我點擊下一個,什麼都沒有發生。 這是我的代碼:在Android小部件中創建按鈕

package android.MySMSwidget; 

import android.appwidget.AppWidgetManager; 
import android.appwidget.AppWidgetProvider; 
import android.net.Uri; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.RemoteViews; 
import android.content.ComponentName; 
import android.content.Context; 
import android.database.Cursor; 
import android.app.*; 

public class MySMSwidget extends AppWidgetProvider implements View.OnClickListener { 


private Button Bnext; 
private int sms_id=0; 
public class MyActivity extends Activity { 
    protected void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.widget_layout); 
      final Button button = (Button) findViewById(R.id.next); 
      button.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        if (v==Bnext){sms_id=sms_id+1;} 
       } 

      }); 
    } 

    } 

public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
      int[] appWidgetIds) { 

    Cursor c = context.getContentResolver().query(Uri.parse("content://sms/"), null, null ,null,null); 
    String body = null; 
    String number = null; 
    String date = null; 
    c.moveToPosition(sms_id); 

    body = c.getString(c.getColumnIndexOrThrow("body")).toString(); 
    number = c.getString(c.getColumnIndexOrThrow("address")).toString(); 
    date = c.getString(c.getColumnIndexOrThrow("date")).toString(); 


    c.close(); 

    RemoteViews updateViews = new RemoteViews(context.getPackageName(), 
      R.layout.widget_layout); 

    updateViews.setTextColor(R.id.text, 0xFF000000); 
    updateViews.setTextViewText(R.id.text,date+'\n'+number+'\n'+body); 
    ComponentName thisWidget = new ComponentName(context, MySMSwidget.class); 
    appWidgetManager.updateAppWidget(thisWidget, updateViews); 
} 
public void onClick(View v) { 
     if (v==Bnext){sms_id=sms_id+1;} 
} 

} 

如果有人能向我解釋地方,爲什麼我錯了,我會很感激。 感謝您的閱讀。

回答

0

通常不可能向標準Android Widget添加交互控件。您可以檢測到Widget本身的點擊。