【发布时间】:2015-10-15 11:43:05
【问题描述】:
我知道关于 SO 有很多类似的问题,但没有一个能解决我的问题。
我在 seekbar 监听器中调用 startActivityForResult。但是, onActivityResult 没有被调用。这是我的代码。可能出了什么问题?
public class PeopleActivity extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
volumeControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int progressChanged = 0;
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
progressChanged = progress;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Intent in = new Intent(getActivity(), com.mytest.mytestninja.RangingActivity.class);
getActivity().startActivityForResult(in, 1);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
rangeValue.setText("CALLED");
}
}
RangingActivity.java
public class RangingActivity extends Activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ranging);
Intent returnIntent = new Intent();
returnIntent.putExtra("result", firstBeacon.toString());
setResult(RESULT_OK, returnIntent);
finish();
}
}
更新
使用 PeopleActivity 片段的活动:
public class DrawerFrontActivity extends SherlockFragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
bar = getSupportActionBar();
Drawable myIcon = getResources().getDrawable( R.drawable.bluebar);
bar.setBackgroundDrawable(myIcon);
SherlockFragment fragment;
fragment = new PeopleActivity();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.rlDrawerHome, fragment);
transaction.commit();
setTitle("Home");
bar.setTitle("Home");
}
}
【问题讨论】:
-
发布你的目标类的setResult()代码,即RangingActivity。
-
更新了目标类。我省略了 OnPause、OnDestroy 等默认方法,因为我没有对这些函数进行任何更改。
-
在 onCreate() 中完成? Afaik 这将破坏活动的生命周期。您可以添加一个按钮并在单击该按钮时测试它是否有效?或者你可以尝试在 onResume() 中执行这个 sn-p。
标签: android android-fragments start-activity