Android onActivityResult在片段中工作不正常
我正在开发一个导航应用程序。我使用两个AutoCompleteTextView。当我把地址写给他们时,它会起作用并画出路线。然而,当我从数据库中选择一个地址时,程序会从数据库片段中获取地址,并将其设置为第二个autocompletetextview,当单击load按钮时,它就不起作用了。地图上没有路线。程序什么也不做。 两种方式我都使用相同的活动类。你知道为什么它不起作用吗? 你知道吗? 已经谢谢你了 这里是autocompleteddirectionsactivity.javaAndroid onActivityResult在片段中工作不正常,android,autocompletetextview,onactivityresult,Android,Autocompletetextview,Onactivityresult,我正在开发一个导航应用程序。我使用两个AutoCompleteTextView。当我把地址写给他们时,它会起作用并画出路线。然而,当我从数据库中选择一个地址时,程序会从数据库片段中获取地址,并将其设置为第二个autocompletetextview,当单击load按钮时,它就不起作用了。地图上没有路线。程序什么也不做。 两种方式我都使用相同的活动类。你知道为什么它不起作用吗? 你知道吗? 已经谢谢你了 这里是autocompleteddirectionsactivity.java public
public class AutoCompleteDirectionsActivity extends Activity {
public static final int RESULT_CODE = 123;
private AutoCompleteTextView from = null;
public static AutoCompleteTextView to = null;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.directions);
Button btnLoadDirections = (Button) findViewById(R.id.load_directions);
from = (AutoCompleteTextView) findViewById(R.id.from);
to = (AutoCompleteTextView) findViewById(R.id.to);
from.setText("My Location");
if (BookmarksArrayAdapter.checkNumber == 1) {
String address = getIntent().getStringExtra("address");
to.setText(address);
BookmarksArrayAdapter.checkNumber = 0;
}
from.setAdapter(new AutoCompleteDirectionsActivityAdapter(this,
android.R.layout.simple_dropdown_item_1line));
to.setAdapter(new AutoCompleteDirectionsActivityAdapter(this,
android.R.layout.simple_dropdown_item_1line));
btnLoadDirections.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!to.getText().toString().equals("")
&& !from.getText().toString().equals("")) {
Intent data = new Intent();
data.putExtra("from", from.getText().toString());
data.putExtra("to", to.getText().toString());
setResult(RESULT_CODE, data);
finish();
} else {
Toast.makeText(TabActivity.mainContext,
"Please, Enter The Destiantion Location",
Toast.LENGTH_LONG).show();
}
}
});
}
}
onActivityResult来自片段类的方法
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == AutoCompleteDirectionsActivity.RESULT_CODE) {
progressDialog = new ProgressDialog(
getSherlockActivity());
progressDialog.setMessage("Loading...");
progressDialog.setCancelable(false);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.show();
String from = data.getExtras().getString("from");
String to = data.getExtras().getString("to");
System.out.println(from);
System.out.println(to);
new DirectionsFetcher(from, to).execute();
}
}
你在哪里调用
startActivityForResult(一个内容,一些结果代码)代码>?然后,onActivityResult()
必须在调用活动内部,而不是在片段中。您甚至不能为结果启动一个片段-但您可以启动一个包含片段的活动。。。我想你的整个过程还不是很清楚。具体来说,我有3个标签,所以3个片段(x,y,书签)当我从y片段中单击route按钮时,AutoCompletedDirectionsActivity启动,我可以输入地址并在地图上绘制路线。但是,当我从书签片段中单击route按钮时,AutoCompletedDirectionsActivity再次启动,我从书签中获取地址,并将此地址设置为第二个autocompletetextview,然后我按下按钮activity关闭,什么也没有。@DerGolem如果他想获取片段的结果,他应该从片段中启动活动。您使用哪种“startActivityForResult”?活动或片段1?我在自动完成的DirectionsActivity中不使用startActivityForResult或startActivity。如果不使用startActivityForResult,onActivityResult将永远不会被激发。