Android Textview文本在片段中onActivityResult之后无法更改

Android Textview文本在片段中onActivityResult之后无法更改,android,android-fragments,textview,Android,Android Fragments,Textview,我试图在片段中通过onActivityResult上的setText()更改TextView。 但没有效果。 这是我的密码 @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub if (requestCode == 111) { if (resultCode == mainAc

我试图在片段中通过onActivityResult上的setText()更改TextView。 但没有效果。 这是我的密码

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    if (requestCode == 111) {
        if (resultCode == mainActivity.RESULT_OK) {
            String result = data.getStringExtra("districtName");
            Log.w(AppConstants.TAG, " onActivityResult Buy " + requestCode
                    + " " + resultCode + " " + result);
            locationTvBuy.setText(result);
        }
        if (resultCode == mainActivity.RESULT_CANCELED) {
            // Write your code if there's no result
        }
    }
}
下面是我的完整片段类代码`公共类BuyFragment扩展片段实现OnClickListener{

private Context context;

private TableRow loacationSelectBuy;
private TextView locationTvBuy;

private MainActivity mainActivity;

public BuyFragment(MainActivity home) {
    // TODO Auto-generated constructor stub
    this.mainActivity = home;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_buy, container,
            false);

    context = mainActivity;

    initUI(rootView);

    return rootView;
}

private void initUI(View view) {
    locationTvBuy = (TextView) view.findViewById(R.id.locationTvBuy);

    loacationSelectBuy = (TableRow) view
            .findViewById(R.id.loacationSelectBuy);
    loacationSelectBuy.setOnClickListener(this);

    Tools.rangedSeekbar(view, R.id.minValueTk, R.id.maxValueTk,
            R.id.layoutTkSeekBar, 0, 50000000, context);
    Tools.rangedSeekbar(view, R.id.minValueSf, R.id.maxValueSf,
            R.id.layoutSfSeekbar, 0, 20000, context);

}

String result = "Select Location";

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    if (requestCode == 111) {
        if (resultCode == mainActivity.RESULT_OK) {
            result = data.getStringExtra("districtName");
            Log.w(AppConstants.TAG, " onActivityResult Buy " + requestCode
                    + " " + resultCode + " " + result);
            // locationTvBuy.setText(result);
        }
        if (resultCode == mainActivity.RESULT_CANCELED) {
            // Write your code if there's no result
        }
    }
}

@Override
public void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    Log.w(AppConstants.TAG, " Resume "+result);
    locationTvBuy.setText(result);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.loacationSelectBuy:
        Intent districtIntent = new Intent(getActivity(),
                DistrictActivity.class);
        mainActivity.startActivityForResult(districtIntent, 111);
        break;
    default:
        break;
    }
}
}` 我在日志中找到结果,但结果未设置为TextView
需要一些帮助

您必须在onActivityResult中保留该值,但在onStart方法的TextView中设置它。

您必须在onActivityResult中保留该值,但在onStart方法的TextView中设置它。

您的Logcat中是否有任何错误?Logcat和更多信息请查看日志中的结果值?这是Logcat结果08-03 01:10:00.671:W/PROPERTY_BAZAAR(18425):活动结果购买111-1吉大港我需要吉大港设置在位置TVBuy.setText(结果);您是否在您的
onResume()
方法中重置您的
locationTvBuy
onActivityResult()
onResume()
之前被调用,因此如果在
onResume()中设置
locationTvBuy
,您将覆盖
onActivityResult()中设置的值
您的Logcat中是否有任何错误?Logcat和更多信息请查看日志中的结果值。以下是Logcat结果08-03 01:10:00.671:W/PROPERTY_BAZAAR(18425):onActivityResult Buy 111-1吉大港我需要吉大港设置在locationTvBuy.setText(结果);您是否在您的
onResume()
方法中重置您的
locationTvBuy
onActivityResult()
onResume()
之前被调用,因此如果您在
onResume()
中设置
locationTvBuy
,您将覆盖在
onActivityResult()
中设置的值,我也会尝试此操作,但也会出现相同的问题