Я хочу предупредить людей, если страница не загружается и функция Toast не остается в течение достаточно длительного периода времени (но я оставил код и закомментировал его на случай, если захочу вернуться к нему ). Поэтому сейчас я пытаюсь создать собственный диалог, но он не появляется.
Я в основном открываю веб-страницу, которая работает
Я добавил загрузчик в строке состояния, чтобы люди увидели, что страница загружается, и это работает
Я добавил код, чтобы сохранить навигацию в приложении, чтобы люди не выходили в новый браузер, и это работает
Как я уже сказал, тост технически работает, но не ложится спать так долго, как хотелось бы
Затем я добавил диалоговое окно настраиваемых предупреждений, и там я терплю неудачу
Я также создал отдельный файл XML для настраиваемого оповещения
И тогда я еще даже не зашел так далеко, но нужно ли мне добавлять код, чтобы закрыть его, или просто нажать кнопку «Назад», чтобы автоматически закрыть его?
Спасибо!
Вот мой код в .java файле
public class FC extends Activity {
WebView mWebView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//this one line added for progress support
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.web);
//makes progress bar visible
getWindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON);
//get web view
mWebView = (WebView) findViewById( R.id.webWeb );
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setSupportZoom(true);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.setInitialScale(45);
mWebView.loadUrl("http://www.chipmunkmobile.com");
//sets the Chrome client
final Activity MyActivity = this;
mWebView.setWebChromeClient(new WebChromeClient()
{
public void onProgressChanged(WebView view, int progress)
{
//makes the bar disappear after URL is loaded, and changes string to Loading...
MyActivity.setTitle("Loading...");
MyActivity.setProgress(progress * 100);
//return the app name after finish loading
if(progress == 100)
MyActivity.setTitle(R.string.app_name);
}
});
//makes page stay in same web client
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
});
//looks to see if connects
mWebView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
//Toast.makeText(getApplicationContext(), "NO CONNECTION?\nVisit the Cyberspots in the SW and NW Halls to find out how to get on the free WiFi",
//Toast.LENGTH_LONG).show();
//showDialog(0);
AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = getApplicationContext();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_dialog,
(ViewGroup) findViewById(R.id.layout_root));
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("WHATEVER");
ImageView image = (ImageView) layout.findViewById(R.id.imgid);
image.setImageResource(R.drawable.img);
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
}
});
}
Вот мой код в .xml файле
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/layout_root"
android:padding="10dp">
<ImageView android:id="@+id/imgid"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="10dp"
/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#FFF"
/>
</LinearLayout>