我正在从对话框片段拍照.而且我也需要类似的东西startActivityForResult(takePictureIntent, actionCode);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch (requestCode) {
case SELECT_PHOTO:
getActivity();
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = imageReturnedIntent.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getActivity().getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
setPic();
}
break;
case ACTION_TAKE_PHOTO_B: {
getActivity();
if (resultCode == Activity.RESULT_OK) {
handleBigCameraPhoto();
}
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
不要调用此方法.有没有这样的方法可以在对话框片段中使用?
android android-dialogfragment start-activity onactivityresult
我正试图从画廊中选择照片DialogFragment.但是我nullpointerexception在初始化的过程中得到了cursor.任何想法为什么会出现此错误?
以下是我的代码:
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = imageReturnedIntent.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
// Nullpointerexcepiton on this line
Cursor cursor = getActivity().getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
cursor.close();
}
Run Code Online (Sandbox Code Playgroud)
这是我的logcat错误:
03-24 12:34:37.645: E/AndroidRuntime(21479): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=65538, result=-1, data=Intent { dat=content://media/external/images/media/3890 flg=0x1 }} to activity {com.example/com.example.MainActivity}: java.lang.NullPointerException
03-24 12:34:37.645: E/AndroidRuntime(21479): at android.app.ActivityThread.deliverResults(ActivityThread.java:3462)
03-24 12:34:37.645: E/AndroidRuntime(21479): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3505)
03-24 12:34:37.645: E/AndroidRuntime(21479): at android.app.ActivityThread.access$1100(ActivityThread.java:150)
03-24 12:34:37.645: E/AndroidRuntime(21479): at …Run Code Online (Sandbox Code Playgroud) 我在纵向模式下有一个查看寻呼机。在横向模式下,我的布局完全不同。从风景回到肖像之后,我想查看viewpager的最后看到的页面。但是总是第一页显示在屏幕上。
这是我的代码:
public class MainActivity extends FragmentActivity {
public static ViewPager pager=null;
public static FragmentAdapter adapter;
PageIndicator mIndicator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_delict);
if(getResources().getConfiguration().orientation==Configuration.ORIENTATION_PORTRAIT){
pager = (ViewPager) findViewById(R.id.pager);
adapter = new FragmentAdapter(getSupportFragmentManager());
pager.setOffscreenPageLimit(4);
pager.setAdapter(adapter);
mIndicator = (CirclePageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(pager);
mIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
Toast.makeText(MainActivity.this, "Changed to page " + position, Toast.LENGTH_SHORT).show();
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
} …Run Code Online (Sandbox Code Playgroud)