1

ButtonAndroid アプリケーションでをクリックすると、メソッドが非同期で呼び出されているように見えます。以下をクリックするButtonと、呼び出したい:

loc = new Location(Options.this);

それが終わったら、私は電話したい:

setLocationPref();

実際に何が起こるかというと、私のプログラムが「displayLocations」の下のメソッドに入ると、再びボタンに戻って呼び出します:

setLocationPref();

エラーは次の 2 行のコードにあると思います。

builder.setItems(cs, new DialogInterface.OnClickListener(){
    public void onClick(DialogInterface dialog, int item){

誰かに何かアイデアがあれば教えてください、どうもありがとう:)

/** Location selection */
bLocation = (Button) findViewById(R.id.bLocation);
bLocation.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {

        loc = new Location(Options.this);

        loc.locationSelection();

        setLocationPref();
    }
});

/** ここで失敗します */

/** Display locations in a list */
public void displayLocations(){

Log.d("displayLocations", "displayLocations ");

LocationSQL getSetLocation = new LocationSQL(context);

final ArrayList<String> locations = locSQL.allLocations();
final CharSequence[] cs = locations.toArray(new CharSequence[locations.size()]);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Pick your location.");
builder.setItems(cs, new DialogInterface.OnClickListener(){
    public void onClick(DialogInterface dialog, int item){

        /** FAILS HERE */

        Toast.makeText(context, cs[item], Toast.LENGTH_SHORT).show();
        String selectedLocation = locations.get(item);
        updateLocationInfo(selectedLocation); 
    }
});
builder.create().show();
}
4

1 に答える 1