提交 e96a601b 编写于 作者: 门心叼龙's avatar 门心叼龙

NewsType init commit

上级 0a319366
......@@ -54,7 +54,6 @@ abstract class BaseActivity : RxAppCompatActivity(), BaseView {
setContentView(R.layout.activity_root)
initCommonView()
ARouter.getInstance().inject(this)
initView()
initListener()
initData()
EventBus.getDefault().register(this)
......@@ -114,8 +113,6 @@ abstract class BaseActivity : RxAppCompatActivity(), BaseView {
abstract fun onBindLayout(): Int
abstract override fun initView()
abstract override fun initData()
override fun initListener() {}
......
......@@ -62,8 +62,6 @@ abstract class BaseFragment : Fragment(), BaseView {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
mView = inflater.inflate(R.layout.fragment_root, container, false)
initCommonView(mView)
initView(mView)
initListener()
return mView
}
......@@ -87,6 +85,9 @@ abstract class BaseFragment : Fragment(), BaseView {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
//initView(mView)
initListener()
isViewCreated = true
//如果启用了懒加载就进行懒加载,否则就进行预加载
if (enableLazyData()) {
......@@ -147,10 +148,6 @@ abstract class BaseFragment : Fragment(), BaseView {
abstract fun onBindLayout(): Int
abstract fun initView(view: View)
override fun initView() {}
abstract override fun initData()
override fun initListener() {}
......
......@@ -8,7 +8,6 @@ package com.fly.tour.common.mvp
* Update: <br></br>
</BaseView> */
interface BaseView : ILoadView, INoDataView, ITransView, INetErrView {
fun initView()
fun initListener()
fun initData()
fun finishActivity()
......
......@@ -19,9 +19,6 @@ class MainFindFragment: BaseFragment() {
return R.layout.fragment_find_main
}
override fun initView(view: View) {
}
override fun initData() {
}
companion object{
......
......@@ -28,7 +28,7 @@ class MainActivity : BaseActivity() {
return R.layout.activity_main_index
}
override fun initView() {
override fun initListener() {
navigation.setOnNavigationItemSelectedListener {
when (it.itemId) {
R.id.navigation_news -> {
......@@ -46,6 +46,9 @@ class MainActivity : BaseActivity() {
}
return@setOnNavigationItemSelectedListener true
}
}
override fun initData() {
mNewsFragment = mNewsProvider?.mainNewsFragment
mFindFragment = mFindProvider?.mainFindFragment
mMeFragment = mMeProvider?.mainMeFragment
......@@ -56,10 +59,6 @@ class MainActivity : BaseActivity() {
.replace(R.id.frame_content, mNewsFragment as Fragment, MainChannel.NEWS.name)
.commit()
}
}
override fun initData() {
}
fun switchContent(from: Fragment?, to: Fragment?, tag: String) {
......
......@@ -9,7 +9,10 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".NewsTypeListActivity"
android:theme="@style/AppTheme.BackBar"
android:label="新闻类型列表"
></activity>
</application>
</manifest>
\ No newline at end of file
package com.fly.tour.me
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import com.fly.tour.common.base.BaseRefreshActivity
import com.fly.tour.common.event.RequestCode
import com.fly.tour.common.util.ToastUtil
import com.fly.tour.common.view.CommonDialogFragment
import com.fly.tour.db.entity.NewsType
import com.fly.tour.me.adapter.NewsTypeListAdapter
import com.fly.tour.me.adapter.NewsTypeListAdapter.DeleteClickListener
import com.fly.tour.me.contract.NewsTypeListContract
import com.fly.tour.me.model.NewsTypeListModel
import kotlinx.android.synthetic.main.activity_news_type_list.*
class NewsTypeListActivity :
BaseRefreshActivity<NewsTypeListModel, NewsTypeListContract.View<NewsType>, NewsTypeListPresenter, NewsType>(),
NewsTypeListContract.View<NewsType> {
private var mNewsTypeListAdapter: NewsTypeListAdapter? = null
override fun onBindRreshLayout(): Int {
return R.id.mRefViewNewsType
}
override fun initPresenter(): NewsTypeListPresenter {
return NewsTypeListPresenter(this)
}
override fun onBindLayout(): Int {
return R.layout.activity_news_type_list
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menu_toolbar_add, menu)
return super.onCreateOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
var i = item.itemId
if (i == R.id.menu_add) {
//startActivityForResult()
}
return super.onOptionsItemSelected(item)
}
override fun initListener() {
mRecViewNewsType.setLayoutManager(LinearLayoutManager(this))
mNewsTypeListAdapter = NewsTypeListAdapter(this)
mRecViewNewsType.setAdapter(mNewsTypeListAdapter)
mNewsTypeListAdapter?.setDeleteClickLisenter(object : DeleteClickListener {
override fun onClickDeleteListener(id: Int) {
CommonDialogFragment.Builder().setTitle("信息提示").setDescribe("确定删除吗?")
.setLeftbtn("取消").setRightbtn("确定")
.setOnDialogClickListener(object : CommonDialogFragment.OnDialogClickListener {
override fun onLeftBtnClick(view: View) {
}
override fun onRightBtnClick(view: View) {
mPresenter?.deleteNewsTypeById(id)
}
}).build().show(supportFragmentManager, "dialog")
}
})
}
override fun initData() {
mPresenter?.refreshData()
}
override fun refreshData(data: List<NewsType>) {
mNewsTypeListAdapter?.refresh(data)
}
override fun loadMoreData(data: List<NewsType>) {
}
override fun onRefreshEvent() {
mPresenter?.refreshData()
}
override fun onLoadMoreEvent() {
mPresenter?.loadMoreData()
}
override fun onAutoLoadEvent() {
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
RequestCode.Me.NEWS_TYPE_ADD -> mPresenter?.refreshData()
}
}
companion object{
fun startNewsTypeListActivity(context:Context){
context.startActivity(Intent(context,NewsTypeListActivity::class.java))
}
}
}
package com.fly.tour.me
import android.content.Context
import android.os.Handler
import com.fly.tour.common.event.EventCode
import com.fly.tour.common.event.me.NewsTypeCrudEvent
import com.fly.tour.common.mvp.BaseRefreshPresenter
import com.fly.tour.common.util.ToastUtil
import com.fly.tour.db.entity.NewsType
import com.fly.tour.me.contract.NewsTypeListContract
import com.fly.tour.me.model.NewsTypeListModel
import org.greenrobot.eventbus.EventBus
/**
* Description: <NewsTypeListPresenter><br>
* Author: mxdl<br>
* Date: 2020/2/17<br>
* Version: V1.0.0<br>
* Update: <br>
*/
class NewsTypeListPresenter(context: Context) :
BaseRefreshPresenter<NewsTypeListModel, NewsTypeListContract.View<NewsType>, NewsType>(context),
NewsTypeListContract.Presenter {
private var isFirst = true;
override fun initModel(): NewsTypeListModel {
return NewsTypeListModel(mContext)
}
override fun refreshData() {
mView?.hideNoDataView()
if (isFirst) {
mView?.showInitLoadView()
} else {
mView?.autoLoadData()
}
Handler().postDelayed(Runnable {
var listNewsType = mModel?.getListNewsType()
if (listNewsType != null && listNewsType.size > 0) {
mView?.refreshData(listNewsType)
} else {
mView?.showNoDataView()
}
if (isFirst) {
isFirst = false
mView?.hideInitLoadView()
} else {
mView?.stopRefresh()
}
}, 1000 * 2)
}
override fun loadMoreData() {
}
override fun deleteNewsTypeById(id: Int) {
mView?.showTransLoadingView()
Handler().postDelayed(Runnable {
if (mModel!!.deleteNewsTypeById(id)) {
ToastUtil.showToast("删除成功")
refreshData()
EventBus.getDefault()
.post(NewsTypeCrudEvent<Any>(EventCode.MeCode.NEWS_TYPE_DELETE))
} else {
ToastUtil.showToast("删除失败")
}
mView?.hideTransLoadingView()
}, 1000 * 2)
}
}
\ No newline at end of file
package com.fly.tour.me.adapter
import android.content.Context
import android.view.View
import android.widget.Button
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.fly.tour.common.base.BaseAdapter
import com.fly.tour.common.util.DateUtil
import com.fly.tour.db.entity.NewsType
import com.fly.tour.me.R
/**
* Description: <NewsTypeListAdapter><br>
* Author: mxdl<br>
* Date: 2020/2/17<br>
* Version: V1.0.0<br>
* Update: <br>
*/
class NewsTypeListAdapter(context: Context) :
BaseAdapter<NewsType, NewsTypeListAdapter.MyViewHodler>(context) {
private var mDeleteClickListener: DeleteClickListener? = null
interface DeleteClickListener {
fun onClickDeleteListener(id: Int)
}
fun setDeleteClickLisenter(deleteClickLisenter: DeleteClickListener) {
mDeleteClickListener = deleteClickLisenter;
}
override fun onBindLayout(): Int {
return R.layout.item_news_type_list
}
override fun onCreateHolder(view: View): MyViewHodler {
return MyViewHodler(view)
}
override fun onBindData(holder: MyViewHodler, e: NewsType, positon: Int) {
holder.mTxtNewTypeTitle.text = e.typename
holder.mTxtNewTypeTime.text = DateUtil.formatDate(
e.addtime!!,
DateUtil.FormatType.MMddHHmm
)
}
inner class MyViewHodler(view: View) : RecyclerView.ViewHolder(view) {
var mTxtNewTypeTitle: TextView = view.findViewById(R.id.txt_me_news_type_title)
var mTxtNewTypeTime: TextView = view.findViewById(R.id.txt_me_news_type_time)
var mBtnNewsTypeDelete: Button = view.findViewById(R.id.btn_me_news_type_delete)
init {
mBtnNewsTypeDelete.setOnClickListener {
if (mDeleteClickListener != null) {
mDeleteClickListener!!.onClickDeleteListener(mList[layoutPosition].id)
}
}
}
}
}
\ No newline at end of file
package com.fly.tour.me.contract
import com.fly.tour.common.mvp.BaseRefreshContract
import com.fly.tour.common.mvp.BaseRefreshView
import com.fly.tour.db.entity.NewsType
/**
* Description: <NewsTypeListContract><br>
* Author: mxdl<br>
* Date: 2020/2/17<br>
* Version: V1.0.0<br>
* Update: <br>
*/
interface NewsTypeListContract {
interface Presenter : BaseRefreshContract.Presenter {
fun deleteNewsTypeById(id: Int)
}
interface View<NewsType> : BaseRefreshView<NewsType> {
}
interface Model {
fun getListNewsType(): List<NewsType>?
fun deleteNewsTypeById(id: Int): Boolean
}
}
\ No newline at end of file
......@@ -2,7 +2,12 @@ package com.fly.tour.me.fragment
import android.view.View
import com.fly.tour.common.base.BaseFragment
import com.fly.tour.common.util.ToastUtil
import com.fly.tour.common.view.SettingBarView
import com.fly.tour.common.view.SettingBarView.OnClickSettingBarViewListener
import com.fly.tour.me.NewsTypeListActivity
import com.fly.tour.me.R
import kotlinx.android.synthetic.main.fragment_me_main.*
/**
* Description: <MainMeFragment><br>
......@@ -19,10 +24,22 @@ class MainMeFragment : BaseFragment() {
return R.layout.fragment_me_main
}
override fun initView(view: View) {
}
override fun initListener() {
view_setting_news_type.setOnClickSettingBarViewListener(object :
OnClickSettingBarViewListener {
override fun onClick() {
NewsTypeListActivity.startNewsTypeListActivity(mActivity)
}
})
view_setting_news_detail.setOnClickSettingBarViewListener(object :OnClickSettingBarViewListener{
override fun onClick() {
ToastUtil.showToast("ok1")
}
})
}
override fun initData() {
}
companion object {
......
package com.fly.tour.me.model
import android.content.Context
import com.fly.tour.common.mvp.BaseModel
import com.fly.tour.db.dao.NewsTypeDao
import com.fly.tour.db.entity.NewsType
import com.fly.tour.me.contract.NewsTypeListContract
/**
* Description: <NewsTypeListModel><br>
* Author: mxdl<br>
* Date: 2020/2/17<br>
* Version: V1.0.0<br>
* Update: <br>
*/
class NewsTypeListModel(context: Context) : BaseModel(context), NewsTypeListContract.Model {
private var mNewsTypeDao: NewsTypeDao = NewsTypeDao(context)
override fun getListNewsType(): List<NewsType>? {
return mNewsTypeDao.listNewsType
}
override fun deleteNewsTypeById(id: Int): Boolean {
return mNewsTypeDao.deleteNewsType(id)
}
}
\ No newline at end of file
<com.refresh.lib.DaisyRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mRefViewNewsType"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/mRecViewNewsType"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.refresh.lib.DaisyRefreshLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="me"
/>
android:orientation="vertical">
<com.fly.tour.common.view.SettingBarView
android:id="@+id/view_setting_news_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:set_left_icon="@drawable/me_icon_company"
app:set_left_icon_visable="true"
app:set_title="设置新闻类型"
/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="32dp"
android:background="#ededed"
/>
<com.fly.tour.common.view.SettingBarView
android:id="@+id/view_setting_news_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:set_left_icon="@drawable/me_icon_organization"
app:set_left_icon_visable="true"
app:set_title="添加新闻"
/>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="40dp"
android:paddingLeft="12dp"
android:paddingRight="12dp"
>
<TextView
android:id="@+id/txt_me_news_type_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="移动开发"
/>
<TextView
android:id="@+id/txt_me_news_type_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/btn_me_news_type_delete"
android:text="2012 12:12"
android:layout_marginRight="10dp"
/>
<Button
android:id="@+id/btn_me_news_type_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@drawable/shape_btn_blue_bg"
android:minWidth="0dp"
android:minHeight="0dp"
android:paddingLeft="10dp"
android:paddingTop="5dp"
android:paddingRight="10dp"
android:paddingBottom="5dp"
android:text="删除"
android:textSize="12sp"
android:textColor="#FFFFFF"
/>
</RelativeLayout>
......@@ -51,8 +51,6 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':lib_common')
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
kapt deps.arouter_compiler
annotationProcessor deps.glide_compiler
annotationProcessor deps.dagger_compiler
......
......@@ -36,9 +36,6 @@ class NewsDetailActivity :
return R.layout.activity_news_detail
}
override fun initView() {
}
override fun initData() {
var newsid = intent.getIntExtra(KeyCode.News.NEWS_ID, -1)
mPresenter?.getNewsDetailById(newsid)
......
......@@ -26,8 +26,6 @@ class MainNewsFragment : BaseFragment() {
private var mListFragment = ArrayList<NewsListFragment>()
private var mIsfresh = false;
private lateinit var mNewsFragmentAdapter:NewsFragmentAdapter
private lateinit var mViewPager:ViewPager
private lateinit var mTabLayout:TabLayout
override val toolbarTitle: String
get() = ""
......@@ -35,11 +33,6 @@ class MainNewsFragment : BaseFragment() {
return R.layout.fragment_news_main
}
override fun initView(view: View) {
mViewPager = view.findViewById(R.id.mViewPager)
mTabLayout = view.findViewById(R.id.mTabLayout)
}
override fun initData() {
}
......
......@@ -21,6 +21,7 @@ import com.fly.tour.news.adapter.NewsListAdapter
import com.fly.tour.news.contract.NewsListContract
import com.fly.tour.news.model.NewsListModel
import com.fly.tour.news.presenter.NewsListPresenter
import kotlinx.android.synthetic.main.fragment_news_list.*
/**
* Description: <NewsListFragment><br>
......@@ -41,7 +42,6 @@ class NewsListFragment :
NewsListContract.View<NewsDetail> {
private var mNewsType: NewsType? = null
private var mNewsListAdapter: NewsListAdapter? = null
private var mRecViewNewsDetail: RecyclerView? = null
override fun onAttach(context: Context) {
super.onAttach(context)
mNewsType = arguments?.getParcelable(KeyCode.News.NEWS_TYPE)
......@@ -51,13 +51,6 @@ class NewsListFragment :
return R.layout.fragment_news_list
}
override fun initView(view: View) {
mRecViewNewsDetail = view.findViewById(R.id.recview_news_list)
mRecViewNewsDetail?.layoutManager = LinearLayoutManager(context)
mNewsListAdapter = NewsListAdapter(context!!)
mRecViewNewsDetail?.adapter = mNewsListAdapter
}
override fun enableLazyData(): Boolean {
return true
}
......@@ -68,6 +61,9 @@ class NewsListFragment :
}
override fun initListener() {
mNewsListAdapter = NewsListAdapter(context!!)
mRecViewNewsDetail?.layoutManager = LinearLayoutManager(context)
mRecViewNewsDetail?.adapter = mNewsListAdapter
mNewsListAdapter?.setItemClickListener(object : OnItemClickListener<NewsDetail> {
override fun onItemClick(e: NewsDetail, position: Int) {
NewsDetailActivity.startNewsDetailActivity(mActivity,e.id)
......
......@@ -9,7 +9,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recview_news_list"
android:id="@+id/mRecViewNewsDetail"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</com.refresh.lib.DaisyRefreshLayout>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册