2010-02-12 8 views
0

SMS 위젯 용 코드를 작성하려고합니다. 나는 컴파일 할 수있는 것을 썼고, 첫 번째 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 위젯에 추가 할 수 없습니다. 위젯 자체에서 클릭을 감지 할 수 있습니다.