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

NewsDetail init commit

上级 28d8e1af
......@@ -51,6 +51,8 @@ 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
......
......@@ -9,6 +9,10 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".NewsDetailActivity"
android:label="新闻详情"
android:theme="@style/AppTheme.BackBar" />
</application>
</manifest>
\ No newline at end of file
package com.fly.tour.news
import android.content.Context
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.fly.tour.common.base.BaseMvpActivity
import com.fly.tour.common.event.KeyCode
import com.fly.tour.db.entity.NewsDetail
import com.fly.tour.news.contract.NewsDetailContract
import com.fly.tour.news.model.NewsDetailModel
import com.fly.tour.news.presenter.NewsDetailPresenter
import kotlinx.android.synthetic.main.activity_news_detail.*
class NewsDetailActivity :
BaseMvpActivity<NewsDetailModel, NewsDetailContract.View, NewsDetailPresenter>(),
NewsDetailContract.View {
companion object {
fun startNewsDetailActivity(context: Context, id: Int) {
val intent = Intent(context, NewsDetailActivity::class.java)
intent.putExtra(KeyCode.News.NEWS_ID, id)
context.startActivity(intent)
}
}
override fun showViewDetail(newsDetail: NewsDetail?) {
mTxtNewsDetailTitle.text = newsDetail?.title
mTxtNewsDetailContent.text = newsDetail?.content
}
override fun initPresenter(): NewsDetailPresenter {
return NewsDetailPresenter(this)
}
override fun onBindLayout(): Int {
return R.layout.activity_news_detail
}
override fun initView() {
}
override fun initData() {
var newsid = intent.getIntExtra(KeyCode.News.NEWS_ID, -1)
mPresenter?.getNewsDetailById(newsid)
}
}
package com.fly.tour.news.contract
import com.fly.tour.common.mvp.BaseView
import com.fly.tour.db.entity.NewsDetail
/**
* Description: <NewsDetailContract><br>
* Author: mxdl<br>
* Date: 2020/2/17<br>
* Version: V1.0.0<br>
* Update: <br>
*/
/**
* Description: <NewsDetailContract><br>
* Author: mxdl<br>
* Date: 2020/2/17<br>
* Version: V1.0.0<br>
* Update: <br>
*/
interface NewsDetailContract {
interface Presenter {
fun getNewsDetailById(id: Int)
}
interface View : BaseView {
fun showViewDetail(newsDetail: NewsDetail?)
}
interface Model {
fun getNewsDetailById(id: Int): NewsDetail?
}
}
\ No newline at end of file
......@@ -36,7 +36,6 @@ class MainNewsFragment : BaseFragment() {
}
override fun initView(view: View) {
//mViewPagers = mViewPager
mViewPager = view.findViewById(R.id.mViewPager)
mTabLayout = view.findViewById(R.id.mTabLayout)
}
......@@ -52,7 +51,7 @@ class MainNewsFragment : BaseFragment() {
mTabLayout.addOnTabSelectedListener(object :TabLayout.OnTabSelectedListener{
override fun onTabReselected(p0: TabLayout.Tab?) {
//mListFragment.get(p0.posi
mListFragment.get(p0!!.position).autoLoadData()
}
override fun onTabUnselected(p0: TabLayout.Tab?) {
......
......@@ -15,6 +15,7 @@ import com.fly.tour.common.event.KeyCode
import com.fly.tour.common.util.ToastUtil
import com.fly.tour.db.entity.NewsDetail
import com.fly.tour.db.entity.NewsType
import com.fly.tour.news.NewsDetailActivity
import com.fly.tour.news.R
import com.fly.tour.news.adapter.NewsListAdapter
import com.fly.tour.news.contract.NewsListContract
......@@ -69,7 +70,7 @@ class NewsListFragment :
override fun initListener() {
mNewsListAdapter?.setItemClickListener(object : OnItemClickListener<NewsDetail> {
override fun onItemClick(e: NewsDetail, position: Int) {
ToastUtil.showToast("ok")
NewsDetailActivity.startNewsDetailActivity(mActivity,e.id)
}
})
}
......
package com.fly.tour.news.model
import android.content.Context
import com.fly.tour.common.mvp.BaseModel
import com.fly.tour.db.dao.NewsDetailDao
import com.fly.tour.db.entity.NewsDetail
import com.fly.tour.news.contract.NewsDetailContract
/**
* Description: <NewsDetailModel><br>
* Author: mxdl<br>
* Date: 2020/2/17<br>
* Version: V1.0.0<br>
* Update: <br>
*/
/**
* Description: <NewsDetailModel><br>
* Author: mxdl<br>
* Date: 2020/2/17<br>
* Version: V1.0.0<br>
* Update: <br>
*/
class NewsDetailModel(context: Context) : BaseModel(context), NewsDetailContract.Model {
private var mNewsDetailDao: NewsDetailDao = NewsDetailDao(context)
override fun getNewsDetailById(id: Int): NewsDetail? {
return mNewsDetailDao.getNewsDetailById(id)
}
}
\ No newline at end of file
package com.fly.tour.news.presenter
import android.content.Context
import android.os.Handler
import com.fly.tour.common.mvp.BasePresenter
import com.fly.tour.common.util.NetUtil
import com.fly.tour.news.contract.NewsDetailContract
import com.fly.tour.news.model.NewsDetailModel
/**
* Description: <NewsDetailPresenter><br>
* Author: mxdl<br>
* Date: 2020/2/17<br>
* Version: V1.0.0<br>
* Update: <br>
*/
class NewsDetailPresenter(context: Context): BasePresenter<NewsDetailModel,NewsDetailContract.View>(context),NewsDetailContract.Presenter{
override fun initModel(): NewsDetailModel {
return NewsDetailModel(mContext)
}
override fun getNewsDetailById(id: Int) {
mView?.showInitLoadView()
Handler().postDelayed(Runnable {
if(!NetUtil.checkNetToast()){
mView?.showNetWorkErrView()
return@Runnable
}
var newsDetail = mModel?.getNewsDetailById(id)
if(newsDetail != null){
mView?.showViewDetail(newsDetail)
}else{
mView?.showNoDataView()
}
mView?.hideInitLoadView()
},1000 * 2)
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/mTxtNewsDetailTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#2a2a2a"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:textStyle="bold"
android:textSize="18dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:singleLine="true"
android:gravity="center"
/>
<TextView
android:id="@+id/mTxtNewsDetailContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#2a2a2a"
android:layout_margin="20dp"
android:textSize="15sp"
android:lineSpacingExtra="10dp"
/>
</LinearLayout>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册