Android onActivityResult在片段中工作不正常

Android onActivityResult在片段中工作不正常,android,autocompletetextview,onactivityresult,Android,Autocompletetextview,Onactivityresult,我正在开发一个导航应用程序。我使用两个AutoCompleteTextView。当我把地址写给他们时,它会起作用并画出路线。然而,当我从数据库中选择一个地址时,程序会从数据库片段中获取地址,并将其设置为第二个autocompletetextview,当单击load按钮时,它就不起作用了。地图上没有路线。程序什么也不做。 两种方式我都使用相同的活动类。你知道为什么它不起作用吗? 你知道吗? 已经谢谢你了 这里是autocompleteddirectionsactivity.java public

我正在开发一个导航应用程序。我使用两个AutoCompleteTextView。当我把地址写给他们时,它会起作用并画出路线。然而,当我从数据库中选择一个地址时,程序会从数据库片段中获取地址,并将其设置为第二个autocompletetextview,当单击load按钮时,它就不起作用了。地图上没有路线。程序什么也不做。 两种方式我都使用相同的活动类。你知道为什么它不起作用吗? 你知道吗? 已经谢谢你了

这里是autocompleteddirectionsactivity.java

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将永远不会被激发。