这确实让我陷入了困境,在我的Android应用程序中点击Button
时,似乎这些方法被称为不同步。当我点击Button
下面我想打电话:Android拨打电话的方法
loc = new Location(Options.this);
一旦完成,然后我想打电话:
setLocationPref();
在现实中会发生什么事是,当我的程序进入下面的“displayLocations方法“再次跳回按钮,并呼吁:
setLocationPref();
我认为错误在于对两行代码:
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();
}
});
代码转回,我已经写/ **失败HERE */
/** 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();
}