Как сделать так, чтобы ярлык на домашнем экране запускал диалог? - PullRequest
1 голос
/ 11 января 2012

Хорошо, я задал еще один вопрос здесь , пытаясь сделать мои действия похожими на диалоги. Я думаю, может быть, вместо того, чтобы спрашивать о конкретном методе, я должен спросить о том, что я хотел бы сделать, и, возможно, есть другой способ сделать это ...

Вот что у меня есть. Мое приложение позволяет размещать ярлыки на главном экране. Код и логика для создания ярлыков все работает безупречно, а затем ярлыки запускают надлежащее действие, которое показывает, что он должен ... опять же, все работает безупречно.

Что мне интересно, есть ли способ, чтобы ярлык на главном экране запускал мою активность в виде диалога (в отличие от простой попытки сделать мою активность похожей на диалог)?

1 Ответ

12 голосов
/ 11 января 2012

Добавьте это в свой манифест, в упражнении, которое вы хотите выглядеть как диалог, объявление:

<activity android:theme="@android:style/Theme.Dialog">

для получения дополнительной информации и тем: http://developer.android.com/guide/topics/ui/themes.html

более того, к этому программноВы можете использовать следующий код:

public class ShowDialogActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    //
    //Log.d("DEBUG", "showing dialog!");

    Dialog dialog = new Dialog(this);
    dialog.setContentView(R.layout.select_dialog_singlechoice);
    dialog.setTitle("Your Widget Name");
    dialog.setCancelable(true);
    dialog.setCanceledOnTouchOutside(true);
    TextView text = (TextView) dialog.findViewById(R.id.text1);
    text.setText("Message");

    dialog.show();
    //
   dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {

    public void onCancel(DialogInterface arg0) {
        finish();
    }

   });
}

}

Вы можете выбрать любой макет для диалогового окна и создать его по своему желанию.

Кроме того, вам необходимо установить это объявление активности вманифест для следующего:

<activity android:name=".ShowDialogActivity"
          android:theme="@android:style/Theme.Translucent.NoTitleBar">
</activity>

Надеюсь, это то, что вы искали, Гал.

...