1

我有一个包含四个片段的视图寻呼机,其中一个是包含地图的片段。当我第一次使用 Viewpager 时,它工作正常。但是当我返回并再次返回 viewpager 时,地图没有加载当前的 latlong。

这是我的 ViewPagerClass

public class ViewPagerAdapter extends FragmentStatePagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();

public ViewPagerAdapter(FragmentManager manager) {
    super(manager);
}

@Override
public Fragment getItem(int position) {
    return mFragmentList.get(position);
}

@Override
public int getCount() {
    return mFragmentList.size();
}

public void addFragment(Fragment fragment) {
    mFragmentList.add(fragment);
}

public int getItemPosition(Object object) {
    return POSITION_NONE;
}


}

这是我的实现

class BottomNavigation : AppCompatActivity(), com.can_u_pls.fragment.RequirmentBack {

private var canUplsApiService: CanUplsService? = null
private var mHelper: PrefHelper? = null
private var mDetector: ConnectionDetector? = null
private var mDialog: ProgressDialog? = null

private var viewPager: ViewPager? = null
//Fragments
internal var chatFragment: Chat? = null
internal var trackFragment: TrackPage? = null
internal var billFragment: BillPage? = null
internal var payFragment: PayPage? = null
internal var prevMenuItem: MenuItem? = null
internal var adapter: ViewPagerAdapter? = null
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
    when (item.itemId) {
        R.id.bottom_chat -> {
            viewPager!!.setCurrentItem(0)
            return@OnNavigationItemSelectedListener true
        }
        R.id.bottom_bill -> {
            /* if (PrefHelper(this@BottomNavigation).getPref(Constants.PUCHASER, false)) {
                 CommonMethods.showAlert(this@BottomNavigation, getString(R.string.message), "You don't have the right to upload if you purchase item")
             } else {*/
            viewPager!!.setCurrentItem(2)
            return@OnNavigationItemSelectedListener true
            //     }
        }
        R.id.bottom_pay -> {
            /*    if (PrefHelper(this@BottomNavigation).getPref(Constants.PUCHASER, false)) {*/
            viewPager!!.setCurrentItem(3)
            return@OnNavigationItemSelectedListener true
            /*  } else {
                  CommonMethods.showAlert(this@BottomNavigation, getString(R.string.message), "You don't have the right to upload if you deliver item")
              }*/

        }
        R.id.bottom_track -> {
            viewPager!!.setCurrentItem(1)
            return@OnNavigationItemSelectedListener true
        }
    }
    false
}

override fun onCreateContextMenu(menu: ContextMenu?, v: View?, menuInfo: ContextMenu.ContextMenuInfo?) {
    val inflater = menuInflater
    inflater.inflate(R.menu.navigation, menu)
}

override fun onResume() {
    super.onResume()



    if (getIntent() != null) {
        if (!"home".equals(intent.getStringExtra(Constants.FROM))) {
            Log.e("from_user_id", "" + getIntent().getStringExtra("from_user_id"));
            if ("5".equals(getIntent().getStringExtra("action"))) {
                viewPager!!.setCurrentItem(2)
                PrefHelper(this@BottomNavigation).savePref(Constants.DELIVERY, false)
                PrefHelper(this@BottomNavigation).savePref(Constants.MSG_RPLY_ID, getIntent().getStringExtra("message_reply_id"))
                PrefHelper(this@BottomNavigation).savePref(Constants.OTHER_USER_ID, getIntent().getStringExtra("from_user_id"))
                PrefHelper(this@BottomNavigation).savePref(Constants.STATUS, getIntent().getStringExtra("action"))
            } /*else if ("3".equals(getIntent().getStringExtra("action"))) {
                PrefHelper(this@BottomNavigation).savePref(Constants.MSG_RPLY_ID, getIntent().getStringExtra("message_reply_id"))
                PrefHelper(this@BottomNavigation).savePref(Constants.DELIVERY, false)
                PrefHelper(this@BottomNavigation).savePref(Constants.OTHER_USER_ID, getIntent().getStringExtra("from_user_id"))
                PrefHelper(this@BottomNavigation).savePref(Constants.STATUS, getIntent().getStringExtra("action"))
            }*/
        }
    }
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_bottom_navigation)

    mDetector = ConnectionDetector(this@BottomNavigation)
    mHelper = PrefHelper(this@BottomNavigation)
    mDialog = ProgressDialog(this@BottomNavigation)
    canUplsApiService = CanUplsService.Factory.makeCanUplsService(this@BottomNavigation)
    mDialog!!.setCancelable(false)

    // mTextMessage = findViewById(R.id.message) as TextView
    val navigation = findViewById(R.id.bottom_navigation) as BottomNavigationView
    viewPager = findViewById(R.id.viewpager) as ViewPager

    navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)

    PrefHelper(this@BottomNavigation).savePref("customer_lat", "0.0")
    PrefHelper(this@BottomNavigation).savePref("customer_long", "0.0")

    viewPager?.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
        override fun onPageScrollStateChanged(state: Int) {
            Log.e("page111", "" + state)
        }


        override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
            Log.e("page", "" + position)
            if ("0".equals(position)) {
                chatFragment = Chat()
            } else if ("1".equals(position)) {
                trackFragment = TrackPage()
            } else if ("2".equals(position)) {
                billFragment = BillPage()
            } else if ("3".equals(position)) {
                payFragment = PayPage()
            }
        }

        override fun onPageSelected(position: Int) {
            if (prevMenuItem != null) {
                prevMenuItem!!.setChecked(false)
            } else {
                navigation.getMenu().getItem(0).setChecked(false)
            }
            Log.d("page", "onPageSelected: " + position)
            navigation.getMenu().getItem(position).setChecked(true)
            prevMenuItem = navigation.getMenu().getItem(position)

            // viewpager.adapter.notifyDataSetChanged();
        }

    })
    setupViewPager(viewPager!!)
}

override fun requirmets(status: String) {

}

override fun onBackPressed() {
    super.onBackPressed()
    overridePendingTransition(R.anim.scale_down, R.anim.activity_close_translate)

}


private fun getRequirement(rplyId: String) {
    Log.e("STATUS", "5555555555555")
    var mParams: HashMap<String, String> = HashMap<String, String>()
    mParams!!.put("session_token", mHelper!!.getPref(Constants.SESSION_TOKEN));
    mParams!!.put("device_type", "1");
    mParams!!.put("language", "en");
    mParams!!.put("message_reply_id", rplyId);

    if (mDetector!!.isConnectingToInternet()) {
        mDialog!!.setMessage(getString(R.string.list_detail))
        mDialog!!.show()
        val mCall = canUplsApiService!!.getRequirementDetails(mParams)
        mCall.enqueue(object : Callback<ResponseFormat> {
            override fun onResponse(call: Call<ResponseFormat>, response: Response<ResponseFormat>) {
                mDialog!!.dismiss()
                if (response.body().responseStatus == 1) {
                    Toast.makeText(this@BottomNavigation, response.body().responseMsg, Toast.LENGTH_SHORT).show()
                    mHelper!!.savePref(Constants.MSG_RPLY_ID, "" + response.body().responseData!!.message_reply_id)

                } else if (response.body().responseInvalid == 1) {
                    CommonMethods.closeApp(this@BottomNavigation);
                } else {
                    CommonMethods.showAlert(this@BottomNavigation, getString(R.string.message), response.body().responseMsg)
                }
            }

            override fun onFailure(call: Call<ResponseFormat>, t: Throwable) {
                mDialog!!.dismiss()
                Log.d("Register", t.toString())
                CommonMethods.showAlert(this@BottomNavigation, getString(R.string.attention), getString(R.string.something_wrong))
            }
        })
    } else {
        CommonMethods.showAlert(this@BottomNavigation, getString(R.string.no_internet), getString(R.string.internet_toast))

    }

}

private fun setupViewPager(viewPager: ViewPager) {
    val adapter = ViewPagerAdapter(supportFragmentManager)
    viewPager!!.setOffscreenPageLimit(3)
    chatFragment = Chat()
    trackFragment = TrackPage()
    billFragment = BillPage()
    payFragment = PayPage()
    adapter.addFragment(chatFragment)
    adapter.addFragment(trackFragment)
    adapter.addFragment(billFragment)
    adapter.addFragment(payFragment)
    viewPager.adapter = adapter
}

}
4

0 回答 0