0

最近、Android 2.3.3 用の Phonegap 1.8 + Jquerymobile 1.1.0 +jquery 1.7.1 でモバイル アプリの開発を開始しました。私の問題は次のとおりです。Androidで戻るボタンをいくつかの方法でオーバーライドしようとしましたが、何も機能しません。使ってみました

document.addEventListener("backbutton", handleBackButton, false);
function handleBackButton() {//do sth}

次に、Application.java コードでオーバーライドしました。そして、それは機能します...ほとんど。私の最初のページ (index.html) は、他のページへのリンクを含むメイン ページ (main.html) の後にログインするために使用されています。ログインとメイン以外のすべてのページで、戻るボタンをオーバーライドして戻るようにしました。これらの 2 つのページでは、AlertDialog で「はい」をクリックした後、アプリを終了する必要があります。MainPage では AlertDialog が表示され、応答を待たずにログイン ページに戻ります。ログインページでは、アラートダイアログが表示され、私の反応を待ちます。理由がわからない。これが私のコードの一部です。

public void onBackPressed() {

  AlertDialog.Builder builder = new AlertDialog.Builder(this);
  builder.setMessage("Are you sure you want to exit?")
  .setCancelable(false)
  .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int id) {
             SampleApplication.this.finish();
         }
     })
     .setNegativeButton("No", new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int id) {
              dialog.cancel();
         }
     });
  AlertDialog alert = builder.create();
  String testUrl = appView.getUrl();      

  if(testUrl.equals("file:///android_asset/www/index.html"))
  {
      alert.show();
  }
  if (testUrl.equals("file:///android_asset/www/main.html"))
  {
      alert.show();
  }
  if ((!testUrl.equals("file:///android_asset/www/index.html")) && (!testUrl.equals("file:///android_asset/www/main.html")))
  { 
      this.appView.goBack();

  }

}
4

1 に答える 1

0

あなたができることは、通常の戻るボタンの動作が必要なすべてのページで通常の戻るボタンを使用することですが、別の動作が必要なページには別のボタンを作成し、通常の戻るボタンのように見せるだけです。

ヘッダーバーで、カスタムデータレルを追加する場所にアンカーを追加するだけです(そして、それを必要な関数に接続します)。

<a data-rel="custombackbtn">Back</a>

次に、通常の戻るボタンのスタイルが設定されている場所 (テーマの css または通常の css) にその data-rel を追加します。そのため、a[data-rel='back'] の言及がある場合は常に data-rel='custombackbtn' を追加します。

a[data-rel='back'], .ui-header a[data-rel='back'] {
*/Styling*/
}

に変更されます

a[data-rel='back'], .ui-header a[data-rel='back'], a[data-rel='backbtn'], .ui-header a[data-rel='backbtn'] {
*/Styling*/
}
于 2012-06-15T02:13:30.647 に答える