Android Textview文本在片段中onActivityResult之后无法更改
我试图在片段中通过onActivityResult上的setText()更改TextView。 但没有效果。 这是我的密码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
@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()
中设置的值,我也会尝试此操作,但也会出现相同的问题