From b105bd6a5eed78f8a1741fe23b9ccb259953f3e2 Mon Sep 17 00:00:00 2001 From: nilupeng <qingingrunt2010@qq.com> Date: Thu, 11 Aug 2022 09:27:26 +0000 Subject: [PATCH] 资讯详情 --- app/src/main/res/layout/activity_msg_detail.xml | 80 ++++++++++++++++++++++++++ app/src/main/java/com/runt/open/mvvm/ui/msg/MsgDetailActivity.java | 30 ++++++++++ app/src/main/AndroidManifest.xml | 1 app/src/main/java/com/runt/open/mvvm/ui/main/home/MsgAdapter.java | 5 + app/src/main/java/com/runt/open/mvvm/data/Results.java | 2 app/src/main/java/com/runt/open/mvvm/ui/main/MainActivity.java | 2 app/src/main/java/com/runt/open/mvvm/retrofit/api/CommonApiCenter.java | 7 ++ app/src/main/java/com/runt/open/mvvm/ui/msg/MsgDetailViewModel.java | 37 ++++++++++++ 8 files changed, 160 insertions(+), 4 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 58fd4f1..b3b79ce 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -47,6 +47,7 @@ <activity android:name=".ui.web.WebViewActivity" /> <activity android:name=".ui.SettingActivity" /> <activity android:name=".ui.AboutActivity" /> + <activity android:name=".ui.msg.MsgDetailActivity" /> </application> diff --git a/app/src/main/java/com/runt/open/mvvm/data/Results.java b/app/src/main/java/com/runt/open/mvvm/data/Results.java index 3d7b385..b9fc8b6 100644 --- a/app/src/main/java/com/runt/open/mvvm/data/Results.java +++ b/app/src/main/java/com/runt/open/mvvm/data/Results.java @@ -14,7 +14,7 @@ //资讯信息 public class Message { - public String id,title,content,cTime; + public String id,title,content,cTime,cUName,cId; } //版本更新 diff --git a/app/src/main/java/com/runt/open/mvvm/retrofit/api/CommonApiCenter.java b/app/src/main/java/com/runt/open/mvvm/retrofit/api/CommonApiCenter.java index 4934aee..f8ad90d 100644 --- a/app/src/main/java/com/runt/open/mvvm/retrofit/api/CommonApiCenter.java +++ b/app/src/main/java/com/runt/open/mvvm/retrofit/api/CommonApiCenter.java @@ -72,4 +72,11 @@ */ @GET("getMsgList") Observable<HttpApiResult<PageResult<Results.Message>>> getMsgList(@Query("page") int pageNum, @Query("size") int pageSize); + + /** + * app更新 + * @return + */ + @GET("getMsgDetail") + Observable<HttpApiResult<Results.Message>> getMsgDetail(@Query("id") String id); } diff --git a/app/src/main/java/com/runt/open/mvvm/ui/main/MainActivity.java b/app/src/main/java/com/runt/open/mvvm/ui/main/MainActivity.java index 2c6cc65..70f50a9 100644 --- a/app/src/main/java/com/runt/open/mvvm/ui/main/MainActivity.java +++ b/app/src/main/java/com/runt/open/mvvm/ui/main/MainActivity.java @@ -114,7 +114,7 @@ private void setTitleStr(int position){ switch (position){ case 0: - setTitle("资讯Aljkpqla"); + setTitle("资讯"); break; case 1: setTitle("服务"); diff --git a/app/src/main/java/com/runt/open/mvvm/ui/main/home/MsgAdapter.java b/app/src/main/java/com/runt/open/mvvm/ui/main/home/MsgAdapter.java index 89a4e55..725df50 100644 --- a/app/src/main/java/com/runt/open/mvvm/ui/main/home/MsgAdapter.java +++ b/app/src/main/java/com/runt/open/mvvm/ui/main/home/MsgAdapter.java @@ -1,11 +1,12 @@ package com.runt.open.mvvm.ui.main.home; +import android.content.Intent; import android.view.View; - import com.runt.open.mvvm.base.adapter.BaseAdapter; import com.runt.open.mvvm.data.Results; import com.runt.open.mvvm.databinding.ItemMsgBinding; import com.runt.open.mvvm.listener.CustomClickListener; +import com.runt.open.mvvm.ui.msg.MsgDetailActivity; import com.runt.open.mvvm.util.HandleDate; /** @@ -24,7 +25,7 @@ binding.getRoot().setOnClickListener(new CustomClickListener() { @Override protected void onSingleClick(View view) { - //context.startActivity(new Intent(context, MsgDetailActivity.class).putExtra("id", data.get("id").toString())); + view.getContext().startActivity(new Intent(view.getContext(), MsgDetailActivity.class).putExtra("id",message.id)); } }); } diff --git a/app/src/main/java/com/runt/open/mvvm/ui/msg/MsgDetailActivity.java b/app/src/main/java/com/runt/open/mvvm/ui/msg/MsgDetailActivity.java new file mode 100644 index 0000000..68f16fd --- /dev/null +++ b/app/src/main/java/com/runt/open/mvvm/ui/msg/MsgDetailActivity.java @@ -0,0 +1,30 @@ +package com.runt.open.mvvm.ui.msg; + +import android.webkit.WebSettings; +import com.runt.open.mvvm.R; +import com.runt.open.mvvm.base.activities.BaseActivity; +import com.runt.open.mvvm.databinding.ActivityMsgDetailBinding; +import com.runt.open.mvvm.util.HandleDate; + +/** + * @purpose Created by Runt (qingingrunt2010@qq.com) on 2022/8/11. + */ +public class MsgDetailActivity extends BaseActivity<ActivityMsgDetailBinding,MsgDetailViewModel> { + @Override + public void initViews() { + mViewModel.detailLive.observe(this, message -> { + mBinding.txtMsgTitle.setText(message.title); + mBinding.txtAuthor.setText(message.cUName); + mBinding.txtTime.setText(HandleDate.getTimeStateNew(HandleDate.getDateTimeToLong(message.cTime))+" · "+getString(R.string.created_at)); + WebSettings settings = mBinding.txtContent.getSettings(); + settings.setTextZoom(80); // 通过百分比来设置文字的大小,默认值是100。 + settings.setDefaultTextEncodingName("UTF-8"); + mBinding.txtContent.loadData(message.content,"text/html","UTF-8"); + }); + } + + @Override + public void loadData() { + mViewModel.getMsgDetail(getIntent().getStringExtra("id")); + } +} diff --git a/app/src/main/java/com/runt/open/mvvm/ui/msg/MsgDetailViewModel.java b/app/src/main/java/com/runt/open/mvvm/ui/msg/MsgDetailViewModel.java new file mode 100644 index 0000000..59fa1a2 --- /dev/null +++ b/app/src/main/java/com/runt/open/mvvm/ui/msg/MsgDetailViewModel.java @@ -0,0 +1,37 @@ +package com.runt.open.mvvm.ui.msg; + +import androidx.lifecycle.MutableLiveData; +import com.runt.open.mvvm.base.model.BaseViewModel; +import com.runt.open.mvvm.data.HttpApiResult; +import com.runt.open.mvvm.data.Results; +import com.runt.open.mvvm.retrofit.observable.HttpObserver; + +/** + * @purpose Created by Runt (qingingrunt2010@qq.com) on 2022/8/11. + */ +public class MsgDetailViewModel extends BaseViewModel { + + MutableLiveData<Results.Message> detailLive = new MutableLiveData<>(); + + public void getMsgDetail(String id){ + httpObserverOn(commonApi.getMsgDetail(id), new HttpObserver<Results.Message>() { + @Override + protected void onSuccess(Results.Message data) { + if(mActivity.isNull(data)){ + mActivity.showToast("消息已被删除"); + mActivity.finish(); + }else{ + detailLive.setValue(data); + } + + } + + @Override + protected void onFailed(HttpApiResult error) { + super.onFailed(error); + mActivity.finish(); + } + }); + } + +} diff --git a/app/src/main/res/layout/activity_msg_detail.xml b/app/src/main/res/layout/activity_msg_detail.xml new file mode 100644 index 0000000..c181a23 --- /dev/null +++ b/app/src/main/res/layout/activity_msg_detail.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:background="@color/white" + android:layout_height="match_parent" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:orientation="vertical"> + + <com.runt.open.mvvm.widgets.TitleBarView + android:id="@+id/title_bar" + style="@style/titlebar" + app:titleText="@string/str_msg_detail" + app:leftDrawable="@mipmap/icon_white_back" + app:leftTint="@color/black"/> + + <ScrollView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:scrollbars="vertical"> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/default_margin_lr" + android:paddingLeft="@dimen/default_margin_lr" + android:paddingRight="@dimen/default_margin_lr" + android:orientation="vertical"> + + <TextView + android:id="@+id/txt_msg_title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textSize="26sp" + android:textStyle="bold" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/default_margin_lr" + android:layout_marginBottom="10dp" + android:gravity="center_vertical" + android:orientation="horizontal"> + + + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="vertical"> + + + <TextView + android:id="@+id/txt_author" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="14sp" + android:text="作者" + /> + + <TextView + android:id="@+id/txt_time" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textColor="@color/txt_enable" + android:text="时间" + /> + + </LinearLayout> + + </LinearLayout> + + <WebView + android:id="@+id/txt_content" + android:layout_marginTop="10dp" + android:layout_width="match_parent" + android:layout_height="wrap_content" tools:ignore="WebViewLayout"/> + </LinearLayout> + + </ScrollView> +</LinearLayout> \ No newline at end of file -- Gitblit v1.9.1