nilupeng
2022-08-11 b105bd6a5eed78f8a1741fe23b9ccb259953f3e2
资讯详情
3 files added
5 files modified
164 ■■■■■ changed files
app/src/main/AndroidManifest.xml 1 ●●●● patch | view | raw | blame | history
app/src/main/java/com/runt/open/mvvm/data/Results.java 2 ●●● patch | view | raw | blame | history
app/src/main/java/com/runt/open/mvvm/retrofit/api/CommonApiCenter.java 7 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/runt/open/mvvm/ui/main/MainActivity.java 2 ●●● patch | view | raw | blame | history
app/src/main/java/com/runt/open/mvvm/ui/main/home/MsgAdapter.java 5 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/runt/open/mvvm/ui/msg/MsgDetailActivity.java 30 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/runt/open/mvvm/ui/msg/MsgDetailViewModel.java 37 ●●●●● patch | view | raw | blame | history
app/src/main/res/layout/activity_msg_detail.xml 80 ●●●●● patch | view | raw | blame | history
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>
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;
    }
    //版本更新
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);
}
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("服务");
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));
            }
        });
    }
app/src/main/java/com/runt/open/mvvm/ui/msg/MsgDetailActivity.java
New file
@@ -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"));
    }
}
app/src/main/java/com/runt/open/mvvm/ui/msg/MsgDetailViewModel.java
New file
@@ -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();
            }
        });
    }
}
app/src/main/res/layout/activity_msg_detail.xml
New file
@@ -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>