0

アクティビティのonCreateメソッドで、getLocProvider()というメソッドを呼び出しました。ロケーションプロバイダーを私に返すことになっています。そのメソッドにアラートダイアログを表示させました。コードは次のとおりです。

private void getLocProvider(){
    ArrayList<String> providers = new ArrayList<String>();

    List<String> list = locManager.getProviders(true);
    for(int i=0; i<list.size(); i++){
        if(list.get(i).equalsIgnoreCase("gps")){
            providers.add("GPS");
        }
        else if(list.get(i).equalsIgnoreCase("network")){
            providers.add("Network");
        }
    }

    providers.add("Manual");

    final CharSequence[] items = providers.toArray(new CharSequence[providers.size()-1]);


    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
    dialogBuilder.setTitle("Choose a way of finding your location:");
    dialogBuilder.setItems(items, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int item) {
           //This is where I'm stuck
        }
    });
    AlertDialog alert = dialogBuilder.create();
    alert.show();}

リスナーを使用しても、メソッドを介して結果を返すだけでは不十分です。この問題を解決する方法を誰かが知っていますか?グーグル検索では、ダイアログの完了時に起動される別の関数を作成することを提案しましたが、その結果をonCreateメソッドで実行しているものに戻すにはどうすればよいですか?

ありがとう、ザック

4

1 に答える 1

0

通常は、UI の作成をアプリケーションの状態から分割します。UI の「null」状態を作成し、ユーザーがダイアログをクリックした後に状態の変化に応答することをお勧めします。このパターンは C# では一般的ですが、Android では一般的ではありません。また、それができた場合onCreate()は、UI がレンダリングされる前に戻る必要があります。

于 2012-05-24T00:40:31.090 に答える