我的版块:问题跳转详情页完成,并实时刷新浏览记录

master
Toyga 3 years ago
parent d0a81d9ab4
commit d5df39cc0a

@ -7,6 +7,7 @@ import android.widget.ImageView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.example.leudaemialikeme.Adapter.HistoryQuestionAdapter;
import com.example.leudaemialikeme.Adapter.QuestionAdapter;
import com.example.leudaemialikeme.Model.Question;
import com.example.leudaemialikeme.R;
@ -15,7 +16,6 @@ import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -27,20 +27,20 @@ import okhttp3.Response;
public class ConcernedProblemActivity extends BaseActivity {
private List<Question> mData = new ArrayList<>();
private RecyclerView recyclerView;
private boolean isPause;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_concerned_problem);
getData();//获得数据
RecyclerView recycleView = (RecyclerView) findViewById(R.id.questionList);//获得视图
recyclerView = (RecyclerView) findViewById(R.id.questionList);//获得视图
ImageView back_concerned = findViewById(R.id.back_concerned);
LinearLayoutManager layoutManager;
layoutManager = new LinearLayoutManager(this);
recycleView.setLayoutManager(layoutManager);//建立线性布局
recyclerView.setLayoutManager(layoutManager);//建立线性布局
QuestionAdapter adapter = new QuestionAdapter(mData, ConcernedProblemActivity.this);//创建适配器
recycleView.setAdapter(adapter);//将视图与适配器连接起来
recyclerView.setAdapter(adapter);//将视图与适配器连接起来
getData();//获得数据
back_concerned.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@ -69,20 +69,9 @@ public class ConcernedProblemActivity extends BaseActivity {
final String message=(String) jsonMap.get("message");
if (message.equals("success")) {
List<Question> questionList = gson.fromJson(jsonMap.get("questionList"), new TypeToken <List<Question>>(){}.getType());
for(int i=0;i<questionList.size();i++){
Question startQuestion = questionList.get(i);
int qid = startQuestion.getQid();
int uid = startQuestion.getUid();
String qtittle = startQuestion.getQtittle();
String qcontent = startQuestion.getQcontent();
Timestamp qtime = startQuestion.getQtime();
int qfollowNum = startQuestion.getQfollowNum();
int qanswerNum = startQuestion.getQanswerNum();
int qbrowseNum = startQuestion.getQbrowseNum();
int flag = startQuestion.getFlag();
Question endQuestion = new Question(qid,uid,qtittle,qcontent,qtime,qfollowNum,qanswerNum,qbrowseNum,flag);
mData.add(endQuestion);
}
mData = questionList;
QuestionAdapter adapter = new QuestionAdapter(mData, ConcernedProblemActivity.this);//创建适配器
recyclerView.setAdapter(adapter);
}
}
};
@ -94,4 +83,21 @@ public class ConcernedProblemActivity extends BaseActivity {
}).start();
}
@Override
public void onPause() {
super.onPause();
isPause = true; //记录页面已经被暂停
}
@Override
public void onResume() {
super.onResume();
if (isPause){ //判断是否暂停
isPause = false;
getData();
HistoryQuestionAdapter adapter = new HistoryQuestionAdapter(mData, ConcernedProblemActivity.this);//创建适配器
recyclerView.setAdapter(adapter);
}
}
}

@ -26,6 +26,7 @@ public class MyQuestionActivity extends BaseActivity {
private List<Question> questionList = new ArrayList<>();
RecyclerView recycleView;
private boolean isPause = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -79,4 +80,22 @@ public class MyQuestionActivity extends BaseActivity {
}).start();
}
@Override
protected void onPause() {
super.onPause();
isPause = true; //记录页面已经被暂停
}
@Override
protected void onResume() {
super.onResume();
if (isPause){ //判断是否暂停
isPause = false;
getMyQustionList();
MyQuestionAdapter adapter = new MyQuestionAdapter(questionList, MyQuestionActivity.this);//创建适配器
recycleView.setAdapter(adapter);//将视图与适配器连接起来
}
}
}

@ -1,5 +1,7 @@
package com.example.leudaemialikeme.Adapter;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -8,27 +10,34 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.example.leudaemialikeme.Activity.BaseActivity;
import com.example.leudaemialikeme.Activity.LoginActivity;
import com.example.leudaemialikeme.Activity.QuestionDetailActivity;
import com.example.leudaemialikeme.Model.Question;
import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.OkHttpUtil;
import com.example.leudaemialikeme.Utils.TimeUtil;
import java.util.List;
public class HistoryQuestionAdapter extends RecyclerView.Adapter<HistoryQuestionAdapter.ViewHolder>{
private List<Question> historyQuestionList;
private Context context;
//重写构造方法
public HistoryQuestionAdapter(List<Question> historyQuestionList){
public HistoryQuestionAdapter(List<Question> historyQuestionList, Context context){
this.historyQuestionList = historyQuestionList;
this.context = context;
}
public int getItemCount(){
return historyQuestionList.size();
}
//内部类
static class ViewHolder extends RecyclerView.ViewHolder {
TextView questionTitle,questionInfo,questionRead,questionTime;
private TextView questionTitle,questionInfo,questionRead,questionTime,question_id;
public ViewHolder(@NonNull View itemView){
super(itemView);
this.question_id = itemView.findViewById(R.id.question_id);
this.questionTitle = itemView.findViewById(R.id.questionTitle);
this.questionInfo = itemView.findViewById(R.id.questionInfo);
this.questionRead = itemView.findViewById(R.id.questionRead);
@ -40,16 +49,42 @@ public class HistoryQuestionAdapter extends RecyclerView.Adapter<HistoryQuestion
public HistoryQuestionAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.question_item,parent,false);
HistoryQuestionAdapter.ViewHolder holder=new HistoryQuestionAdapter.ViewHolder(view);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int qid = Integer.parseInt(holder.question_id.getText().toString());
addQuestionBrowse(qid);
Intent intent = new Intent(context, QuestionDetailActivity.class);
intent.putExtra("qid", qid);
context.startActivity(intent);
}
});
return holder;
}
private void addQuestionBrowse(int qid) {
new Thread(new Runnable() {
@Override
public void run() {
try{
String url = LoginActivity.SERVER_URL+"/main-servlet?action=addQuestionBrowse&qid="+qid+"&iduser="+ BaseActivity.owner.getNetId();
OkHttpUtil.synGet(url);
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
//重写onBindViewHolder()方法
@Override
public void onBindViewHolder(@NonNull ViewHolder holder,int position){
Question question = historyQuestionList.get(position);
holder.question_id.setText(String.valueOf(question.getQid()));
holder.questionTitle.setText(question.getQtittle());
holder.questionInfo.setText(question.getQcontent());
holder.questionRead.setText(String.valueOf(question.getQbrowseNum()));
holder.questionTime.setText(TimeUtil.timeToString(question.getQtime()));
holder.questionInfo.setText(question.getQcontent());
holder.questionRead.setText(String.valueOf(question.getQbrowseNum()));
holder.questionTime.setText(TimeUtil.timeToString(question.getQtime()));
}
}

@ -10,9 +10,12 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.example.leudaemialikeme.Activity.BaseActivity;
import com.example.leudaemialikeme.Activity.LoginActivity;
import com.example.leudaemialikeme.Activity.QuestionDetailActivity;
import com.example.leudaemialikeme.Model.Question;
import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.OkHttpUtil;
import com.example.leudaemialikeme.Utils.TimeUtil;
import java.util.List;
@ -51,13 +54,30 @@ public class MyQuestionAdapter extends RecyclerView.Adapter<MyQuestionAdapter.Vi
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int qid = Integer.parseInt(holder.text_my_question_id.getText().toString());
addQuestionBrowse(qid);
Intent intent = new Intent(context, QuestionDetailActivity.class);
intent.putExtra("qid", Integer.parseInt(holder.text_my_question_id.getText().toString()));
intent.putExtra("qid", qid);
context.startActivity(intent);
}
});
return holder;
}
private void addQuestionBrowse(int qid) {
new Thread(new Runnable() {
@Override
public void run() {
try{
String url = LoginActivity.SERVER_URL+"/main-servlet?action=addQuestionBrowse&qid="+qid+"&iduser="+ BaseActivity.owner.getNetId();
OkHttpUtil.synGet(url);
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
//重写onBindViewHolder()方法
@Override
public void onBindViewHolder(@NonNull MyQuestionAdapter.ViewHolder holder, int position){

@ -10,9 +10,12 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.example.leudaemialikeme.Activity.BaseActivity;
import com.example.leudaemialikeme.Activity.LoginActivity;
import com.example.leudaemialikeme.Activity.QuestionDetailActivity;
import com.example.leudaemialikeme.Model.Question;
import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.OkHttpUtil;
import com.example.leudaemialikeme.Utils.TimeUtil;
import java.util.List;
@ -49,13 +52,29 @@ public class QuestionAdapter extends RecyclerView.Adapter<QuestionAdapter.ViewHo
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int qid = Integer.parseInt(holder.questionId.getText().toString());
addQuestionBrowse(qid);
Intent intent = new Intent(context, QuestionDetailActivity.class);
intent.putExtra("qid", Integer.parseInt(holder.questionId.getText().toString()));
intent.putExtra("qid", qid);
context.startActivity(intent);
}
});
return holder;
}
private void addQuestionBrowse(int qid) {
new Thread(new Runnable() {
@Override
public void run() {
try{
String url = LoginActivity.SERVER_URL+"/main-servlet?action=addQuestionBrowse&qid="+qid+"&iduser="+ BaseActivity.owner.getNetId();
OkHttpUtil.synGet(url);
}catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
//重写onBindViewHolder()方法
@Override
public void onBindViewHolder(@NonNull QuestionAdapter.ViewHolder holder, int position){

@ -1,8 +1,10 @@
package com.example.leudaemialikeme.Fragment;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.DefaultItemAnimator;
@ -10,23 +12,16 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.leudaemialikeme.Activity.BaseActivity;
import com.example.leudaemialikeme.Activity.MainActivity;
import com.example.leudaemialikeme.Adapter.HistoryQuestionAdapter;
import com.example.leudaemialikeme.Model.Question;
import com.example.leudaemialikeme.R;
import com.example.leudaemialikeme.Utils.OkHttpUtil;
import com.example.leudaemialikeme.Utils.TimeUtil;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -47,6 +42,8 @@ public class QuestionHistoryFragment extends Fragment {
private String collectCategoryTitle = "Default";
private List<Question> questionAllList = new ArrayList<>();
private SwipeRefreshLayout mSwipeRefreshLayout;
private RecyclerView recyclerView;
private boolean isPause = false;
public QuestionHistoryFragment() {
// Required empty public constructor
@ -76,16 +73,16 @@ public class QuestionHistoryFragment extends Fragment {
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_question_history, container, false);
getData();//获得数据
RecyclerView recycleView = (RecyclerView) view.findViewById(R.id.questionHistoryList);//获得视图
recyclerView = (RecyclerView) view.findViewById(R.id.questionHistoryList);//获得视图
LinearLayoutManager layoutManager;
layoutManager = new LinearLayoutManager(getActivity());
recycleView.setLayoutManager(layoutManager);//建立线性布局
final HistoryQuestionAdapter adapter = new HistoryQuestionAdapter(questionAllList);//创建适配器
recycleView.setItemAnimator(new DefaultItemAnimator());//设置动画效果
recycleView.setAdapter(adapter);
recyclerView.setLayoutManager(layoutManager);//建立线性布局
final HistoryQuestionAdapter adapter = new HistoryQuestionAdapter(questionAllList, getContext());//创建适配器
recyclerView.setItemAnimator(new DefaultItemAnimator());//设置动画效果
recyclerView.setAdapter(adapter);
mSwipeRefreshLayout = view.findViewById(R.id.refresh_layout);
// mTextView = view.findViewById(R.id.tv_pull_down_refresh);
getData();//获得数据
handleDownPullUpdate();
return view;
@ -114,11 +111,6 @@ public class QuestionHistoryFragment extends Fragment {
}
private void getData() {
// Question collect1 = new Question(1,1,"测试问题浏览版","博客内容", TimeUtil.stringToTime("2022-01-07 12:12:12"),1,1,1,0);
// questionList.add(collect1);
// Question collect2 = new Question(1,1,"测试问题浏览版2","博客内容", TimeUtil.stringToTime("2022-01-07 12:12:12"),1,1,5,0);
// questionList.add(collect2);
new Thread(new Runnable() {
@Override
public void run() {
@ -138,20 +130,9 @@ public class QuestionHistoryFragment extends Fragment {
final String message=(String) jsonMap.get("message");
if (message.equals("success")) {
List<Question> questionList = gson.fromJson(jsonMap.get("questionList"), new TypeToken <List<Question>>(){}.getType());
for(int i=0;i<questionList.size();i++){
Question startQuestion = questionList.get(i);
int qid = startQuestion.getQid();
int uid = startQuestion.getUid();
String qtittle = startQuestion.getQtittle();
String qcontent = startQuestion.getQcontent();
Timestamp qtime = startQuestion.getQtime();
int qfollowNum = startQuestion.getQfollowNum();
int qanswerNum = startQuestion.getQanswerNum();
int qbrowseNum = startQuestion.getQbrowseNum();
int flag = startQuestion.getFlag();
Question endQuestion = new Question(qid,uid,qtittle,qcontent,qtime,qfollowNum,qanswerNum,qbrowseNum,flag);
questionAllList.add(endQuestion);
}
questionAllList = questionList;
HistoryQuestionAdapter adapter = new HistoryQuestionAdapter(questionAllList, getContext());//创建适配器
recyclerView.setAdapter(adapter);
}
}
};
@ -162,4 +143,21 @@ public class QuestionHistoryFragment extends Fragment {
}
}).start();
}
@Override
public void onPause() {
super.onPause();
isPause = true; //记录页面已经被暂停
}
@Override
public void onResume() {
super.onResume();
if (isPause){ //判断是否暂停
isPause = false;
getData();
HistoryQuestionAdapter adapter = new HistoryQuestionAdapter(questionAllList, getContext());//创建适配器
recyclerView.setAdapter(adapter);
}
}
}

@ -24,6 +24,10 @@
android:layout_height="wrap_content"
android:textSize="15dp"
android:layout_marginBottom="5dp"
android:textStyle="bold"
android:maxLines="2"
android:ellipsize="end"
android:text="问题"
/>
<TextView
@ -32,6 +36,7 @@
android:layout_height="wrap_content"
android:textSize="15dp"
android:layout_margin="5dp"
android:text="内容"
/>
<LinearLayout
@ -44,7 +49,7 @@
android:id="@+id/questionRead"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="11dp"
android:textSize="12dp"
android:layout_marginLeft="5dp"
/>

Loading…
Cancel
Save