을 촬영 한 후 잘못된 페이지에 스냅. 각 조각에는 단추가있어 사진을 찍어 온라인 데이터베이스에 업로드합니다. 그러나 새로운 권한 요구 사항으로 인해 허가를 요청해야했습니다. 따라서 업로드를 계속하려면 onRequestPermissionsResult()을 사용해야합니다. 다음은 Viewpager 내가 현재 내 안드로이드 응용 프로그램에서 <strong>Viewpager</strong> 구현을 사용하고 사진
는이이 ViewPager.class에서이다 (권한이 부여 된 후 이후 Viewpager에서이 방법은 조각에서 한 대신이라고합니다) 내 구현
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case REQUEST_TAKE_PHOTO:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//Permission granted to write and read file
//Get the current fragment
List<Fragment> fragments = getSupportFragmentManager().getFragments();
for (Fragment currFragment : fragments) {
if (currFragment != null)
currFragment.onRequestPermissionsResult(
REQUEST_TAKE_PHOTO
, permissions
, grantResults);
}
}
return;
default: //Do nothing
return;
}
}
입니다 이것은 단편 자체
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case REQUEST_TAKE_PHOTO:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//Permission granted to write and read file
uploadImage();
}
return;
default: //Do nothing
return;
}
}
이것을 내지 일부
List<Fragment> fragments = getSupportFragmentManager().getFragments();
for (Fragment currFragment : fragments) {
if (currFragment != null)
currFragment.onRequestPermissionsResult(
REQUEST_TAKE_PHOTO
, permissions
, grantResults);
}
는 OnRequestPermissionResult() 방법을 버튼을 클릭 한 올바른 조각를 찾아 전화를 내 시도이다.
는 그러나, 나는 Viewpager에서이 이상한 동작을 확인할 수 있습니다. 방법은 나는 내가 ViewPager에서 그 위치를 입력 한 다음 RecyclerView,에서 Viewholder을 클릭한다는 것이다 구현했습니다.
이상한 행동은 예를 들어 RecyclerView에서 2 페이지를 입력 한 것입니다. 사진은 (인 - 빌드 카메라 응용 프로그램을 통해) 완료 후 그럼, 그것은
그 이유는 2 페이지로 전환됩니다, 4 페이지에 슬쩍와 사진 업로드 버튼을 클릭? 어떻게 수정해야합니까? 긴 게시물을 유감으로 생각합니다. 그냥 많은 정보를 얻으려고 노력하는 것뿐입니다. 감사합니다
편집 : 나는
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != Activity.RESULT_OK) {
return;
}
if (requestCode == REQUEST_TAKE_PHOTO) {
//Request for permission to access file
if (ContextCompat.checkSelfPermission(getActivity(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
//ask for permission
ActivityCompat.requestPermissions(getActivity(), new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_TAKE_PHOTO);
} else {
uploadImage();
}
}
}
뭔가 잘못되는 requestPermission에게 전화하는 방법이 무엇입니까?
편집 포스트 : 이것은 제가 버그를 발견 한 나는 notifyDataSetChange라는 부분()
private void loadData() {
mRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
ArrayList<RouteInstructions> mList2 = new ArrayList<RouteInstructions>();
for (DataSnapshot instructions : dataSnapshot.getChildren()) {
mList2.add(instructions.getValue(RouteInstructions.class));
}
mList = mList2;
mAdapter.notifyDataSetChanged();
mPager.setCurrentItem(getIntent().getIntExtra(EXTRA_INDEX, 0));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
게시 한 코드가 귀하의 문제와 관련 있다고 생각되는 이유는 무엇입니까? 파편 목록을 조작하는 방법을 보여 주면 안 될까요? – kalabalik
requestPermission은 어떻게 호출합니까? 이 게시물 http://stackoverflow.com/questions/33169455/onrequestpermissionsresult-not-being-called-in-dialog-fragment에서 볼 수 있듯이 지원 라이브러리를 호출하면 직접 조각을 가리 킵니다. 그게 당신을위한 해결책입니까? – Cata
@KalaBalik 조각 목록을 조작하는 방법은 무엇을 의미합니까?내 FragmentStatePagerAdapter 부분의 getItem() 및 getCount()를 참조하고 있습니까? – Bosen