android主屏幕小部件,任何人都可以告诉我在主屏幕小部件中可以使用什么,我可以使用autocompletetextview吗?

时间:2012-03-10 20:04:41

标签: android android-widget

任何人都可以告诉我,如果我可以在我的主屏幕小部件中使用autocompletetextview,或者如果不能在主屏幕小部件中使用什么,或者我如何将它与我的自动完成一致,因为我想要某种输入小部件。如果有人可以引用我或粘贴一些具有相同问题的代码,那将是很好的,因为我有红色,可能无法将输入机制作为主屏幕小部件! :D谢谢。

这是我的xml

    android:id="@+id/autoDeni"

     android:layout_width="200dp"
        android:layout_height="50dp"
        android:layout_gravity="center|top"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="60dp"
    android:maxLines="1"

    android:hint="Име...."


    />

   <ProgressBar
       android:id="@+id/progressBar1"
       android:layout_width="35dp"
       android:layout_height="35dp" />

2 个答案:

答案 0 :(得分:1)

您不能在窗口小部件中使用任何类型的“EditText”。如果你必须这样做,只需在点击一个小部件时打开一个对话框并在那里工作。

请注意,只允许在小部件中使用这些小部件:

  • AnalogClock
  • 按钮
  • 精密计时
  • 的ImageButton
  • ImageView的
  • 进度
  • 的TextView

答案 1 :(得分:0)

无法在窗口小部件中使用editText或自动完成功能,只能用作按钮图片或列表, 这是一些小部件的代码

Override
public void onReceive(Context ctxt, Intent intent)
{
    if(intent.getAction()==null)
    {
        ctxt.startService(new Intent(ctxt,ToggleService.class));
    }
    else
    {
        super.onReceive(ctxt, intent);
    }

}

@Override
public void onUpdate(Context context,AppWidgetManager appWidgetManager, int [] appWidgetIds)
{
    context.startService(new Intent(context,ToggleService.class));
    //RemoteViews buildUpdate(context);
}

public static class ToggleService extends IntentService
    {
    public ToggleService() {
        super("AppWidget$ToggleService");

        }



@Override
protected void onHandleIntent(Intent intent)
{
    ComponentName me = new ComponentName(this,AppWidget.class);
    AppWidgetManager mgr= AppWidgetManager.getInstance(this);
    mgr.updateAppWidget(me,buildUpdate(this));
}

private RemoteViews buildUpdate(Context context)
{
    RemoteViews updateViews=new RemoteViews(context.getPackageName(),R.layout.widget);
    AudioManager audioManager=(AudioManager)context.getSystemService(Activity.AUDIO_SERVICE);
    if(audioManager.getRingerMode()==AudioManager.RINGER_MODE_SILENT)
    {
        updateViews.setImageViewResource(R.id.phoneState,R.drawable.silent);
        audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

    }
    else {
        updateViews.setImageViewResource(R.id.phoneState,R.drawable.phone123);
        audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

    }
    Intent i=new Intent(this, AppWidget.class);
    PendingIntent pi= PendingIntent.getBroadcast(context,0, i,0);
    updateViews.setOnClickPendingIntent(R.id.phoneState,pi);
    return updateViews;
}

  }
  }