どこでも検索しましたが、何も見つかりませんでした。progressDialogの位置を中央の水平方向と垂直方向に設定する必要があります。しかし、コマンドラインでコードをコンパイルすると(Eclipseは使用しません)、「シンボルが見つかりません>重力..」というエラーメッセージが表示されます。インクルージョンの問題だと思います。何をインポートすればよいかわからないため、無駄なファイルを大量にインポートしました。誰かが私を助けることができますか?コードは次のとおりです。
package com.worfut.project;
import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebChromeClient;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuInflater;
import android.content.Context;
import android.content.ContextWrapper;
import android.view.ContextThemeWrapper;
import android.widget.ShareActionProvider;
import android.widget.LinearLayout;
import android.view.Window;
public class MainActivity extends Activity {
WebView WorfutWeb;
ProgressDialog progressBar;
private int progressBarStatus = 0;
private Handler progressBarHandler = new Handler();
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
final Activity activity = this;
WorfutWeb = (WebView) findViewById(R.id.mainWebView);
WorfutWeb.getSettings().setSupportZoom(false);
WorfutWeb.getSettings().setBuiltInZoomControls(false);
WorfutWeb.setBackgroundColor(Color.BLACK);
WorfutWeb.setWebViewClient(new myWebClient());
WorfutWeb.getSettings().setJavaScriptEnabled(true);
// prepare for a progress bar dialog
progressBar = new ProgressDialog(this, R.id.mainWebView);
progressBar.setCancelable(true);
progressBar.setIndeterminate(false);
progressBar.getWindow().setGravity(Gravity.CENTER);
progressBar.setMessage("Caricamento in corso..");
progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressBar.setProgress(0);
progressBar.setMax(100);
progressBar.show();
WorfutWeb.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, final int progress)
{
activity.setProgress(progress * 100);
progressBar.setProgress(progress);
if(progress == 100)
{
progressBar.dismiss();
}
}
});
WorfutWeb.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
String html1 = "<html><body><br>";
String html2 = "<div style='background: #007ac1; border: 2px solid lightblue; border-radius: 8px; padding: 4px;'>";
String html3 = "<p style='font-weight: bolder;color: white;'><h2><u>Si è verificato un errore!</u></h3><br>";
String html4 = "Possibili cause:<br><ul><li>";
String html5 = "Non si dispone di una connessione Internet;</li><ul><li>Chiudere l'applicazione</li><li>Attivare la connessione Internet</li><li>Riavviare l'applicazione</li></ul><li>L'applicazione non risponde<ul><li>Chiudere e riaprire l'applicazione</li><li>Scriveteci sul Market Android</li></ul>";
String html6 = "</li></ul></p><br><p align=right><font color=white><em>Worfut Staff.</em> </font></p></div></body></html>";
String mime = "text/html";
String encoding = "utf-8";
view.loadData(html1+html2+html3+html4+html5+html6, mime, encoding);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein);
WorfutWeb.startAnimation(fadeInAnimation);
WorfutWeb.loadUrl("http://www.americantrip.altervista.org/try");
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_about:
WorfutWeb.loadUrl("http://americantrip.altervista.org/try/info.php");
// inside the menu button you don't need to call Super.loadUrl, LoadUrl its enough
return true;
case R.id.menu_help:
WorfutWeb.loadUrl("http://americantrip.altervista.org/try/help.php");
// inside the menu button you don't need to call Super.loadUrl, LoadUrl its enough
return true;
case R.id.menu_search:
WorfutWeb.loadUrl("http://americantrip.altervista.org/try/cerca.php");
return true;
case R.id.menu_exit:
finish();
default:
return super.onOptionsItemSelected(item);
}
}
public void onResume() {
super.onResume();
if (WorfutWeb != null) {
WorfutWeb.resumeTimers();
}
}
public void onPause() {
super.onPause();
if (WorfutWeb != null) {
WorfutWeb.pauseTimers();
}
}
public class myWebClient extends WebViewClient
{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
progressBar.dismiss();
}
}
// To handle "Back" kewy press event for WebView to go back to previous screen.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK) && WorfutWeb.canGoBack()) {
WorfutWeb.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
これはレイアウトファイルです:
<?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"
android:background="@drawable/sfondo"
android:gravity="center">
>
<WebView android:id="@+id/mainWebView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" />
</LinearLayout>
エラーのある部分は次のとおりです。
progressBar.getWindow().setGravity(Gravity.CENTER);
正しいと思いますが、何か他のものをインポートする必要があるかもしれません。ありがとうyall。
PS私はすでにhttp://developer.android.com/reference/android/widget/LinearLayout.html#setGravity(int) を見て、そこから「importandroid.widget.LinearLayout」を取得しました。同じようです、実行しないでください。