Всплывающее окно при первоначальном запуске приложения для Android - PullRequest
4 голосов
/ 03 мая 2011

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

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
    android:layout_width="fill_parent" android:layout_height="fill_parent">



<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_height="fill_parent" android:layout_width="fill_parent" android:scrollbarAlwaysDrawVerticalTrack="false"/>

</LinearLayout>

Файл Java:

package com.A2Ddesigners.WhatThe;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.view.KeyEvent;


public class Whatthe extends Activity {
    WebView webview;
    /** Called when the activity is first created. */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
            webview.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        webview = (WebView) findViewById(R.id.webview);
        webview.setWebViewClient(new HelloWebViewClient());
        webview.getSettings().setJavaScriptEnabled(true);
        webview.setInitialScale(50); 
        webview.getSettings().setUseWideViewPort(true); 
        webview.loadUrl("http://mdsitest2.com/");
    }
    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;


            }

            }   
        }

Ответы [ 4 ]

2 голосов
/ 29 мая 2015

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

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.PopupWindow;

public class PopupDispaly extends Activity {
    private PopupWindow outComePopup;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tiwter_login);
        final View anyView = findViewById(R.id.popo_up); // define heade your view
        anyView.postDelayed(new Runnable() {
            @Override
            public void run() {
                callFirstToolTip(anyView);
            }
        }, 5000); // hear you can put your delay time like 5000 mls

    }
    public void callFirstToolTip(View view) {
        Log.i("Started Info","popup");
        View layout = LayoutInflater.from(PopupDispaly.this).inflate(R.layout.popup_copy_delete, null); // define hear your layout file id.
        LinearLayout layCopyDelete = (LinearLayout) layout.findViewById(R.id.layCopyDelete);// hear define your id of sub lay like LinearLayout.
        outComePopup = new PopupWindow(layout);
        outComePopup.setFocusable(true);
        layCopyDelete.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
        outComePopup.setWidth(layCopyDelete.getMeasuredWidth());
        outComePopup.setHeight(layCopyDelete.getMeasuredHeight());
        outComePopup.setBackgroundDrawable(getResources().getDrawable(android.R.color.transparent));
        outComePopup.setOutsideTouchable(true);
        outComePopup.showAsDropDown(view);
    }

}

И мой файл формата Custome View

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/got_it_bg"
    android:layout_gravity="center_horizontal"
   android:id="@+id/layCopyDelete"
    android:layout_marginLeft="100dp"
    android:orientation="horizontal">

</LinearLayout>
0 голосов
/ 29 сентября 2011

PopupWindow.showAsDropDown() в отложенном процессе может решить эту проблему, вы можете выполнить метод show popupWindow in onCreate() с задержкой 0,5 с.

0 голосов
/ 11 февраля 2013

Вы должны использовать PopupWindow.showAtLocation, но использовать метод post одного из представлений о вашей активности. Вы также можете использовать корневой вид действия, используя findViewById(android.R.id.content). Ваш код должен выглядеть так:

View anyView = findViewById(R.id.anyView);
anyView.post(new Runnable()
{
    @Override
    public void run()
    {
        // Create and show PopupWindow
    }
});
0 голосов
/ 03 мая 2011

Похоже, вы должны использовать пользовательское диалоговое окно. http://developer.android.com/guide/topics/ui/dialogs.html

Внизу страницы приведен пример кода. Чтобы показать это, вы можете вызвать onCreateDialog (int) из своей основной деятельности в его методе onCreate ().

...