Как наложить вид сверху на активность? - PullRequest
3 голосов
/ 21 апреля 2011

Есть ли способ динамически добавить представление поверх текущего представления активности?Следует отметить, что это нужно сделать из другого класса, который имеет доступ только к контексту Activity.

ex:

public class ActivityClass extends Activity
{
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        …       

        PopupClass popup = new PopupClass(this);
        popup.showPopup();
    }

}


public class PopupClass
{
    Context context;

    void Popup(Context ctx)
    {
        context = ctx;
    }

    void showPopup()
    {
        // Add a view on top of the current Activity.
    }
}

Есть ли способ для PopupClass добавитьвзгляд на текущую активность, просто зная контекст?

PopupClass больше ничего не знает о Activity, и при этом он не может передать View в ActivityClass для добавления ActivityClass.

Ответы [ 3 ]

4 голосов
/ 21 апреля 2011
1 голос
/ 21 апреля 2011

Я использую относительные макеты для этой цели. Я думаю, вы также можете использовать макеты кадров. Посмотрите здесь: http://www.learn -android.com / 2010/01/05 / Android-макета учебник / 5 /

0 голосов
/ 22 апреля 2011

Почему бы не сделать PopClass расширением Activity и в атрибутах AndroidManifest.xml для действия PopupClass установите android:theme="@android:style/Theme.Dialog"

Тогда в ActivityClass вместо использования кода в показанном образце вы можете использовать...

Intent i = new Intent("PopupClass.class");
startActivityForResult(i);

Когда действие PopupClass завершено, он может установить возвращаемые данные в другом Intent и завершить.

Затем в ActivityClass вы переопределяете onActivityResult(...) и обрабатывает возвращенный Intent.

...